diff options
| author | Ned Batchelder <ned@nedbatchelder.com> | 2018-08-07 07:27:23 -0400 |
|---|---|---|
| committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-08-07 07:27:23 -0400 |
| commit | 839a1a0209f2ed27215c8f2fb75c710806346b38 (patch) | |
| tree | 4ecae9ebf2114623701cae7b188eb436af1045fb /tests | |
| parent | b147ea9dafe38e08083842f89502fefd9ba790d7 (diff) | |
| parent | 305c5fdc378879adaac518ddeac7c22a0c92f49d (diff) | |
| download | python-coveragepy-git-839a1a0209f2ed27215c8f2fb75c710806346b38.tar.gz | |
Merge branch 'master' into nedbat/data-sqlite
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/coveragetest.py | 14 | ||||
| -rw-r--r-- | tests/test_api.py | 6 | ||||
| -rw-r--r-- | tests/test_data.py | 19 | ||||
| -rw-r--r-- | tests/test_testing.py | 17 |
4 files changed, 43 insertions, 13 deletions
diff --git a/tests/coveragetest.py b/tests/coveragetest.py index 8e3fa05d..94f50852 100644 --- a/tests/coveragetest.py +++ b/tests/coveragetest.py @@ -6,6 +6,7 @@ import contextlib import datetime import functools +import glob import os import random import re @@ -347,6 +348,13 @@ class CoverageTest( msg = "File %r shouldn't exist" % fname self.assertTrue(not os.path.exists(fname), msg) + def assert_file_count(self, pattern, count): + """Assert that there are `count` files matching `pattern`.""" + files = glob.glob(pattern) + msg = "There should be {} files matching {!r}, but there are these: {}" + msg = msg.format(count, pattern, files) + self.assertEqual(len(files), count, msg) + def assert_starts_with(self, s, prefix, msg=None): """Assert that `s` starts with `prefix`.""" if not s.startswith(prefix): @@ -355,10 +363,8 @@ class CoverageTest( def assert_recent_datetime(self, dt, seconds=10, msg=None): """Assert that `dt` marks a time at most `seconds` seconds ago.""" age = datetime.datetime.now() - dt - # Python2.6 doesn't have total_seconds :( - self.assertEqual(age.days, 0, msg) - self.assertGreaterEqual(age.seconds, 0, msg) - self.assertLessEqual(age.seconds, seconds, msg) + self.assertGreaterEqual(age.total_seconds(), 0, msg) + self.assertLessEqual(age.total_seconds(), seconds, msg) def command_line(self, args, ret=OK, _covpkg=None): """Run `args` through the command line. diff --git a/tests/test_api.py b/tests/test_api.py index 248784ff..a860c7da 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -357,6 +357,7 @@ class ApiTest(CoverageTest): cov = coverage.Coverage(data_suffix=True) self.start_import_stop(cov, "code2") cov.save() + self.assert_file_count(".coverage.*", 2) def make_bad_data_file(self): """Make one bad data file.""" @@ -378,8 +379,9 @@ class ApiTest(CoverageTest): # We got the results from code1 and code2 properly. self.check_code1_code2(cov) - # The bad file still exists. + # The bad file still exists, but it's the only parallel data file left. self.assert_exists(".coverage.foo") + self.assert_file_count(".coverage.*", 1) def test_combining_twice(self): self.make_good_data_files() @@ -387,6 +389,8 @@ class ApiTest(CoverageTest): cov1.combine() cov1.save() self.check_code1_code2(cov1) + self.assert_file_count(".coverage.*", 0) + self.assert_exists(".coverage") cov2 = coverage.Coverage() with self.assertRaisesRegex(CoverageException, r"No data to combine"): diff --git a/tests/test_data.py b/tests/test_data.py index 702f4554..68b2c375 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -574,7 +574,7 @@ class CoverageDataFilesTest(DataTestHelpers, CoverageTest): self.assert_doesnt_exist(".coverage") def test_true_suffix(self): - self.assertEqual(glob.glob(".coverage.*"), []) + self.assert_file_count(".coverage.*", 0) # suffix=True will make a randomly named data file. covdata1 = CoverageData() @@ -596,26 +596,25 @@ class CoverageDataFilesTest(DataTestHelpers, CoverageTest): self.assertTrue(all(str(os.getpid()) in fn for fn in data_files2)) def test_combining(self): - self.assert_doesnt_exist(".coverage.1") - self.assert_doesnt_exist(".coverage.2") + self.assert_file_count(".coverage.*", 0) covdata1 = CoverageData() covdata1.add_lines(LINES_1) covdata1.write(suffix='1') self.assert_exists(".coverage.1") - self.assert_doesnt_exist(".coverage.2") + self.assert_file_count(".coverage.*", 1) covdata2 = CoverageData() covdata2.add_lines(LINES_2) covdata2.write(suffix='2') self.assert_exists(".coverage.2") + self.assert_file_count(".coverage.*", 2) covdata3 = CoverageData() combine_parallel_data(covdata3) self.assert_line_counts(covdata3, SUMMARY_1_2) self.assert_measured_files(covdata3, MEASURED_FILES_1_2) - self.assert_doesnt_exist(".coverage.1") - self.assert_doesnt_exist(".coverage.2") + self.assert_file_count(".coverage.*", 0) def test_erasing(self): covdata1 = CoverageData() @@ -635,8 +634,7 @@ class CoverageDataFilesTest(DataTestHelpers, CoverageTest): self.make_file(".coverage") data = CoverageData("datafile") data.erase(parallel=True) - self.assert_doesnt_exist("datafile.1") - self.assert_doesnt_exist("datafile.2") + self.assert_file_count("datafile.*", 0) self.assert_exists(".coverage") def read_json_data_file(self, fname): @@ -709,11 +707,16 @@ class CoverageDataFilesTest(DataTestHelpers, CoverageTest): }) covdata2.write(suffix='2') + self.assert_file_count(".coverage.*", 2) + covdata3 = CoverageData() aliases = PathAliases() aliases.add("/home/ned/proj/src/", "./") aliases.add(r"c:\ned\test", "./") combine_parallel_data(covdata3, aliases=aliases) + self.assert_file_count(".coverage.*", 0) + # covdata3 hasn't been written yet. Should this file exist or not? + #self.assert_exists(".coverage") apy = canonical_filename('./a.py') sub_bpy = canonical_filename('./sub/b.py') diff --git a/tests/test_testing.py b/tests/test_testing.py index d8cd0ef0..2b01584e 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -51,6 +51,23 @@ class CoverageTestTest(CoverageTest): with self.assertRaises(AssertionError): self.assert_exists("shadow.txt") + def test_file_count(self): + self.make_file("abcde.txt", "abcde") + self.make_file("axczz.txt", "axczz") + self.make_file("afile.txt", "afile") + self.assert_file_count("a*.txt", 3) + self.assert_file_count("*c*.txt", 2) + self.assert_file_count("afile.*", 1) + self.assert_file_count("*.q", 0) + with self.assertRaises(AssertionError): + self.assert_file_count("a*.txt", 13) + with self.assertRaises(AssertionError): + self.assert_file_count("*c*.txt", 12) + with self.assertRaises(AssertionError): + self.assert_file_count("afile.*", 11) + with self.assertRaises(AssertionError): + self.assert_file_count("*.q", 10) + def test_assert_startwith(self): self.assert_starts_with("xyzzy", "xy") self.assert_starts_with("xyz\nabc", "xy") |
