summaryrefslogtreecommitdiff
path: root/dev-python/sybil/files/sybil-3.0.0-test-order.patch
blob: 1badf5b06a19295750d10565fdcc36e8acf3f413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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: