summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/backends/json.py5
-rw-r--r--unittests/framework/backends/test_json.py15
2 files changed, 10 insertions, 10 deletions
diff --git a/framework/backends/json.py b/framework/backends/json.py
index 98689cc09..dd08bf053 100644
--- a/framework/backends/json.py
+++ b/framework/backends/json.py
@@ -290,8 +290,9 @@ def _resume(results_dir):
# Load all of the test names and added them to the test list
tests_dir = os.path.join(results_dir, 'tests')
- file_list = sorted(os.listdir(tests_dir),
- key=lambda p: int(os.path.splitext(p)[0]))
+ file_list = sorted(
+ (l for l in os.listdir(tests_dir) if l.endswith('.json')),
+ key=lambda p: int(os.path.splitext(p)[0]))
for file_ in file_list:
with open(os.path.join(tests_dir, file_), 'r') as f:
diff --git a/unittests/framework/backends/test_json.py b/unittests/framework/backends/test_json.py
index 94d8fbf54..ccf445747 100644
--- a/unittests/framework/backends/test_json.py
+++ b/unittests/framework/backends/test_json.py
@@ -202,13 +202,11 @@ class TestResume(object):
assert set(test.tests.keys()) == \
{'group1/test1', 'group1/test2', 'group2/test3'}
- @pytest.mark.xfail
- def test_load_invalid_folder(self, tmpdir):
- """backends.json._resume: ignores invalid results"""
- # XXX: I'm not sure if this test is worth fixing or not, it would
- # involve a lot of code, and for this case to actually be tripped a
- # user would have to write a file into the tests directory that isn't a
- # number
+ def test_load_invalid_ext(self, tmpdir):
+ """backends.json._resume: ignores invalid results extensions.
+
+ This gets triggered by an incomplete atomic write
+ """
f = six.text_type(tmpdir)
backend = backends.json.JSONBackend(f)
backend.initialize(shared.INITIAL_METADATA)
@@ -218,13 +216,14 @@ class TestResume(object):
t(results.TestResult('pass'))
with backend.write_test("group2/test3") as t:
t(results.TestResult('fail'))
- with open(os.path.join(f, 'tests', 'x.json'), 'w') as w:
+ with open(os.path.join(f, 'tests', '3.json.tmp'), 'w') as w:
w.write('foo')
test = backends.json._resume(f)
assert set(test.tests.keys()) == \
{'group1/test1', 'group1/test2', 'group2/test3'}
+
def test_load_incomplete(self, tmpdir):
"""backends.json._resume: loads incomplete results.