Bug 1275269 - Add tests for reset_test_stats; r?maja_zf
Add harness unit tests to test that
MarionetteTestRunner.reset_test_stats is called
appropriately by run_tests, and that it sets the values
of the Runner's test statistic properties as expected.
MozReview-Commit-ID: Dassso5qsj7
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
+++ b/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
@@ -353,11 +353,38 @@ def test_add_test_manifest(runner):
for test in runner.tests:
assert test['filepath'].endswith(('test_expected_pass.py', 'test_expected_fail.py'))
if test['filepath'].endswith('test_expected_fail.py'):
assert test['expected'] == 'fail'
else:
assert test['expected'] == 'pass'
+def test_reset_test_stats_is_called(mach_parsed_kwargs):
+ tests = mach_parsed_kwargs.pop('tests')
+ with patch('marionette.runtests.MarionetteTestRunner.reset_test_stats') as reset:
+ runner = MarionetteTestRunner(**mach_parsed_kwargs)
+ assert reset.call_count == 1
+ with pytest.raises(Exception):
+ runner.run_tests(tests)
+ assert reset.call_count == 2
+
+def test_reset_test_stats(runner):
+ def reset_successful(runner):
+ success = True
+ stats = ['passed', 'failed', 'unexpected_successes', 'todo', 'skipped', 'failures']
+ for s in stats:
+ if not ((s in vars(runner)) and (not vars(runner)[s])):
+ success = False
+ return success
+ assert reset_successful(runner)
+ runner.passed = 1
+ runner.failed = 1
+ runner.failures.append(['TEST-UNEXPECTED-FAIL'])
+ assert not reset_successful(runner)
+ with pytest.raises(Exception):
+ runner.run_tests([u'test_fake_thing.py'])
+ assert reset_successful(runner)
+
+
if __name__ == '__main__':
import sys
sys.exit(pytest.main(['--verbose', __file__]))