diff options
Diffstat (limited to 'dev-python/sybil/files')
-rw-r--r-- | dev-python/sybil/files/sybil-3.0.0-test-order.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/dev-python/sybil/files/sybil-3.0.0-test-order.patch b/dev-python/sybil/files/sybil-3.0.0-test-order.patch new file mode 100644 index 000000000000..1badf5b06a19 --- /dev/null +++ b/dev-python/sybil/files/sybil-3.0.0-test-order.patch @@ -0,0 +1,45 @@ +From 4d1e1c891bd619a0dec0a265a930bf49050833d1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 27 Oct 2021 13:07:01 +0200 +Subject: [PATCH] Restore sorting of test paths to make tests reliable again + +11496eb5761761b687ad4889b4173d3124caa844 has replaced the all_documents +method with a direct call to glob. This has implicitly resulted +in removal of path sorting that in turn means that the test output +depends on filesystem order now and is no longer reliable. +In particular, the tests can now fail randomly depending +on the underlying filesystem, unpack/checkout order, etc. Restore +explicit sorting to make test order predictable again. + +Fixes #34 +--- + sybil/integration/unittest.py | 2 +- + tests/test_sybil.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sybil/integration/unittest.py b/sybil/integration/unittest.py +index 7129ddf..ce34caf 100644 +--- a/sybil/integration/unittest.py ++++ b/sybil/integration/unittest.py +@@ -38,7 +38,7 @@ def unittest_integration(sybil: 'Sybil'): + + def load_tests(loader=None, tests=None, pattern=None): + suite = TestSuite() +- for path in sybil.path.glob('**/*'): ++ for path in sorted(sybil.path.glob('**/*')): + if path.is_file() and sybil.should_parse(path): + document = sybil.parse(path) + +diff --git a/tests/test_sybil.py b/tests/test_sybil.py +index 74a04ea..72a5aea 100644 +--- a/tests/test_sybil.py ++++ b/tests/test_sybil.py +@@ -243,7 +243,7 @@ def parse(document): + + def test_namespace(capsys): + sybil = Sybil([parse], path='./samples') +- documents = [sybil.parse(p) for p in sybil.path.glob('sample*.txt')] ++ documents = [sybil.parse(p) for p in sorted(sybil.path.glob('sample*.txt'))] + actual = [] + for document in documents: + for example in document: |