diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-14 21:26:41 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-14 21:26:41 -0400 |
commit | f256c9003a03f483c311de1254e9aa6e04075267 (patch) | |
tree | 9bc8facc7c11b544245a6eca4e5d85a070ae08da | |
parent | 18ea186360df8daed00ff446db719d0c714c025f (diff) | |
download | python-coveragepy-git-f256c9003a03f483c311de1254e9aa6e04075267.tar.gz |
Clean ups from pr 66
-rw-r--r-- | CHANGES.txt | 5 | ||||
-rw-r--r-- | coverage/pickle2json.py | 23 | ||||
-rw-r--r-- | tests/test_pickle2json.py | 22 |
3 files changed, 33 insertions, 17 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index d1e4a43a..818991d3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,7 +12,12 @@ Latest - 4.0b1 broke --append creating new data files. This is now fixed, closing `issue 392`_. +- A new conversion utility has been added: ``python -m coverage.pickle2json`` + will convert v3.x pickle data files to v4.x JSON data files. Thanks, + Alexander Todorov. Closes `issue 395`_. + .. _issue 392: https://bitbucket.org/ned/coveragepy/issues/392/run-append-doesnt-create-coverage-file +.. _issue 395: https://bitbucket.org/ned/coveragepy/issues/395/rfe-read-pickled-files-as-well-for Version 4.0b1 --- 2 August 2015 diff --git a/coverage/pickle2json.py b/coverage/pickle2json.py index 4a2e941a..3d7fc6aa 100644 --- a/coverage/pickle2json.py +++ b/coverage/pickle2json.py @@ -6,19 +6,22 @@ from coverage.backward import pickle from coverage.data import CoverageData -def pickle_read_raw_data(cls, file_obj): + +def pickle_read_raw_data(cls_unused, file_obj): + """Replacement for CoverageData._read_raw_data.""" return pickle.load(file_obj) + def pickle2json(infile, outfile): + """Convert a coverage.py 3.x pickle data file to a 4.x JSON data file.""" try: old_read_raw_data = CoverageData._read_raw_data CoverageData._read_raw_data = pickle_read_raw_data covdata = CoverageData() - inf = open(infile, 'rb') - covdata.read(inf) - inf.close() + with open(infile, 'rb') as inf: + covdata.read(inf) covdata.write_file(outfile) finally: @@ -30,10 +33,14 @@ if __name__ == "__main__": parser = OptionParser(usage="usage: %s [options]" % __file__) parser.description = "Convert .coverage files from pickle to JSON format" - parser.add_option("-i", "--input-file", action="store", default=".coverage", - help="Name of input file. Default .coverage") - parser.add_option("-o", "--output-file", action="store", default=".coverage", - help="Name of output file. Default .coverage") + parser.add_option( + "-i", "--input-file", action="store", default=".coverage", + help="Name of input file. Default .coverage", + ) + parser.add_option( + "-o", "--output-file", action="store", default=".coverage", + help="Name of output file. Default .coverage", + ) (options, args) = parser.parse_args() diff --git a/tests/test_pickle2json.py b/tests/test_pickle2json.py index 06dc4c2e..3414a874 100644 --- a/tests/test_pickle2json.py +++ b/tests/test_pickle2json.py @@ -8,13 +8,20 @@ from coverage.data import CoverageData from coverage.pickle2json import pickle2json from tests.coveragetest import CoverageTest -from tests.test_data import * +from tests.test_data import DataTestHelpers +from tests.test_data import ( + LINES_1, SUMMARY_1, MEASURED_FILES_1, A_PY_LINES_1, ARCS_3, SUMMARY_3, + MEASURED_FILES_3, X_PY_LINES_3, X_PY_ARCS_3, Y_PY_LINES_3, Y_PY_ARCS_3, +) + class Pickle2JsonTestInTempDir(DataTestHelpers, CoverageTest): - """ Tests pickle2json """ + """Tests pickle2json.py.""" + + no_files_in_temp_dir = True def write_pickled_file(self, covdata, filename): - """ write coverage data as pickled `filename` """ + """Write coverage data as pickled `filename`.""" # Create the file data. file_data = {} @@ -24,14 +31,11 @@ class Pickle2JsonTestInTempDir(DataTestHelpers, CoverageTest): file_data['lines'] = dict((f, list(lmap)) for f, lmap in iitems(covdata._lines)) # Write the pickle to the file. - file_obj = open(filename, 'wb') - try: + with open(filename, 'wb') as file_obj: pickle.dump(file_data, file_obj, 2) - finally: - file_obj.close() def test_read_write_lines_pickle(self): - """ test the old pickle format """ + # Test the old pickle format. covdata1 = CoverageData() covdata1.set_lines(LINES_1) self.write_pickled_file(covdata1, "lines.pkl") @@ -46,7 +50,7 @@ class Pickle2JsonTestInTempDir(DataTestHelpers, CoverageTest): self.assertEqual(covdata2.run_infos(), []) def test_read_write_arcs_pickle(self): - """ test the old pickle format """ + # Test the old pickle format. covdata1 = CoverageData() covdata1.set_arcs(ARCS_3) self.write_pickled_file(covdata1, "arcs.pkl") |