Bug 1287591 - Test cleanup after adding empty manifest; r?whimboo
Add a test to make sure that if an empty manifest, or one with no active tests,
is provided, Marionette/Firefox are shut down as expected (previous behavior
was that the Marionette cleanup was never reached in this scenario).
MozReview-Commit-ID: 5hlUd0GQAQR
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
+++ b/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
@@ -395,16 +395,30 @@ 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_add_empty_manifest(mock_runner):
+ mock_runner._appName = 'fake_app'
+ mani_name, mani_tests = 'fake_empty_manifest.ini', []
+ with patch.multiple('marionette.runner.base.TestManifest',
+ read=DEFAULT, active_tests=DEFAULT) as mocks:
+ mocks['active_tests'].return_value = mani_tests
+ with patch('marionette.runner.base.mozversion.get_version'):
+ with pytest.raises(Exception) as exc:
+ mock_runner.run_tests([mani_name])
+ assert "no tests to run" in exc.value.message
+ assert mock_runner.marionette is None
+ assert mock_runner.httpd is None
+
+
def test_reset_test_stats(runner):
def reset_successful(runner):
stats = ['passed', 'failed', 'unexpected_successes', 'todo', 'skipped', 'failures']
return all([((s in vars(runner)) and (not vars(runner)[s])) for s in stats])
assert reset_successful(runner)
runner.passed = 1
runner.failed = 1
runner.failures.append(['TEST-UNEXPECTED-FAIL'])