diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-08-01 09:15:25 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-08-01 09:15:25 -0400 |
commit | 79111b14cd70bbfd75555bb819c6dbdc25a543aa (patch) | |
tree | a0b68df0663c06b3f18d5daaa6a9b418a7a8e1e6 /tests/test_numbits.py | |
parent | 66fb5e7bda44ac9f7b2d86687c96a34a0d632010 (diff) | |
download | python-coveragepy-git-79111b14cd70bbfd75555bb819c6dbdc25a543aa.tar.gz |
Keep hypothesis from freaking out about variable timings during metacov
Diffstat (limited to 'tests/test_numbits.py')
-rw-r--r-- | tests/test_numbits.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/test_numbits.py b/tests/test_numbits.py index ff574d40..4a835c4f 100644 --- a/tests/test_numbits.py +++ b/tests/test_numbits.py @@ -3,9 +3,10 @@ """Tests for coverage.numbits""" -from hypothesis import given +from hypothesis import given, settings from hypothesis.strategies import sets, integers +from coverage import env from coverage.numbits import ( nums_to_numbits, numbits_to_nums, merge_numbits, numbits_any_intersection, ) @@ -15,22 +16,33 @@ from tests.coveragetest import CoverageTest # Hypothesis-generated line number data line_numbers = sets(integers(min_value=1, max_value=9999), min_size=1) +# When coverage-testing ourselves, hypothesis complains about a test being +# flaky because the first run exceeds the deadline (and fails), and the second +# run succeeds. Disable the deadline if we are coverage-testing. +default_settings = settings() +if env.METACOV: + default_settings = settings(default_settings, deadline=None) + + class NumbitsOpTest(CoverageTest): """Tests of the numbits operations in numbits.py.""" run_in_temp_dir = False @given(line_numbers) + @settings(default_settings) def test_conversion(self, nums): nums2 = numbits_to_nums(nums_to_numbits(nums)) self.assertEqual(nums, set(nums2)) @given(line_numbers, line_numbers) + @settings(default_settings) def test_merging(self, nums1, nums2): merged = numbits_to_nums(merge_numbits(nums_to_numbits(nums1), nums_to_numbits(nums2))) self.assertEqual(nums1 | nums2, set(merged)) @given(line_numbers, line_numbers) + @settings(default_settings) def test_any_intersection(self, nums1, nums2): inter = numbits_any_intersection(nums_to_numbits(nums1), nums_to_numbits(nums2)) expect = bool(nums1 & nums2) |