Bug 1275269 - Add tests for reset_test_stats; r?maja_zf draft
authorAnjana Vakil <anjanavakil@gmail.com>
Thu, 09 Jun 2016 12:44:43 +0200
changeset 380669 4d9d1ea312b1257720a8ec7f7c7919efa9b7b30d
parent 380668 c9d48ad7a82e1c84fed06af68159a07d648ac443
child 380670 d408e7ef22aa4732949926d225423d01a390d70b
push id21276
push userbmo:anjanavakil@gmail.com
push dateWed, 22 Jun 2016 16:16:23 +0000
reviewersmaja_zf
bugs1275269
milestone50.0a1
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
testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
--- 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__]))