summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_numbits.py14
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)