Bug 1275269 - Create runner_mock fixture for run_tests testing; r?maja_zf
Create new pytest fixture `runner_mock` to get a
runner instance with some properties (e.g. `self.marionette`)
mocked out, for use in some new tests for `run_tests`.
MozReview-Commit-ID: 1XrkQdEdRy9
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
+++ b/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
@@ -1,20 +1,21 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import pytest
-from mock import patch, Mock, DEFAULT, mock_open
+from mock import patch, Mock, DEFAULT, mock_open, MagicMock
from marionette.runtests import (
MarionetteTestRunner,
MarionetteHarness,
cli
)
from marionette.runner import MarionetteTestResult
+from marionette_driver.marionette import Marionette
# avoid importing MarionetteJSTestCase to prevent pytest from
# collecting and running it as part of this test suite
import marionette.marionette_test as marionette_test
def _check_crash_counts(has_crashed, runner, mock_marionette):
if has_crashed:
@@ -22,18 +23,17 @@ def _check_crash_counts(has_crashed, run
assert runner.crashed == 1
else:
assert runner.crashed == 0
@pytest.fixture()
def mock_marionette(request):
""" Mock marionette instance """
- import marionette_driver
- marionette = Mock(spec=marionette_driver.marionette.Marionette)
+ marionette = Mock(spec=Marionette)
if 'has_crashed' in request.funcargnames:
marionette.check_for_crash.return_value = request.getfuncargvalue(
'has_crashed'
)
return marionette
@pytest.fixture()
@@ -124,16 +124,28 @@ def mach_parsed_kwargs(logger):
@pytest.fixture()
def runner(mach_parsed_kwargs):
"""
MarionetteTestRunner instance initialized with default options.
"""
return MarionetteTestRunner(**mach_parsed_kwargs)
+@pytest.fixture()
+def runner_mock(mach_parsed_kwargs):
+ """
+ MarionetteTestRunner instance with mocked-out
+ self.marionette and other properties.
+ """
+ mach_parsed_kwargs['binary'] = None
+ runner = MarionetteTestRunner(**mach_parsed_kwargs)
+ runner.driverclass = MagicMock(spec=Marionette)
+ runner.run_test_set = Mock()
+ return runner
+
@pytest.fixture
def harness_class(request):
"""
Mock based on MarionetteHarness whose run method just returns a number of
failures according to the supplied test parameter
"""
if 'num_fails_crashed' in request.funcargnames:
num_fails_crashed = request.getfuncargvalue('num_fails_crashed')