from mozperftest.environment import SYSTEM, TEST from mozperftest.test.mochitest import MissingMochitestInformation from mozperftest.tests.support import (
EXAMPLE_MOCHITEST_TEST,
get_running_env,
) from mozperftest.utils import NoPerfMetricsError
with mock.patch("moztest.resolve.TestResolver") as test_resolver_mock, mock.patch( "mozperftest.test.functionaltestrunner.load_class_from_path"
) as load_class_path_mock, mock.patch( "mozperftest.test.functionaltestrunner.mozlog.formatters.MachFormatter.__new__"
) as formatter_mock, mock.patch( "mozperftest.test.mochitest.install_requirements_file"
):
formatter_mock.return_value = lambda x: x
with mock.patch( "mozperftest.test.functionaltestrunner.FunctionalTestRunner.test"
) as test_mock, mock.patch("mozperftest.test.mochitest.install_requirements_file"):
test_mock.return_value = (0, mock.MagicMock()) try: with pytest.raises(NoPerfMetricsError): with sys as s, mochitest as m:
m(s(metadata)) finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
with mock.patch( "mozperftest.test.functionaltestrunner.FunctionalTestRunner.test"
) as test_mock, mock.patch("mozperftest.test.mochitest.install_requirements_file"):
test_mock.return_value = (0, mock.MagicMock()) try: with pytest.raises(NoPerfMetricsError): with sys as s, mochitest as m:
m(s(metadata)) finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
assert"--headless"in test_mock.call_args[0][2]
@mock.patch( # This mock.patch actually patches the mochitest run_test_harness function "runtests.run_test_harness"
)
@mock.patch( # This mock.patch causes mochitest's runtests to be imported instead of # others in the remote_run "mochitest.runtests.run_test_harness",
new=mock.MagicMock(),
)
@mock.patch( "mozperftest.test.functionaltestrunner.mozlog.formatters.MachFormatter.__new__"
)
@mock.patch( "mozperftest.test.mochitest.install_requirements_file", new=mock.MagicMock()
)
@mock.patch( "mozperftest.test.functionaltestrunner.load_class_from_path", new=mock.MagicMock()
)
@mock.patch("moztest.resolve.TestResolver", new=mock.MagicMock())
@mock.patch("mozperftest.test.mochitest.ON_TRY", new=True)
@mock.patch("mozperftest.utils.ON_TRY", new=True)
@mock.patch("mochitest.mochitest_options.MochitestArgumentParser", new=mock.MagicMock())
@mock.patch("manifestparser.TestManifest", new=mock.MagicMock()) def test_mochitest_ci_metrics(formatter_mock, run_test_harness_mock): ifnot os.getenv("MOZ_FETCHES_DIR"):
os.environ["MOZ_FETCHES_DIR"] = "fake-path"
mach_cmd, metadata, env = running_env(
tests=[str(EXAMPLE_MOCHITEST_TEST)],
mochitest_extra_args=[],
mochitest_manifest="fake.ini",
mochitest_manifest_flavor="mocha",
)
system = env.layers[SYSTEM]
mochitest = env.layers[TEST]
run_test_harness_mock.side_effect = test_print try: with system as s, mochitest as m:
m(s(metadata)) finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
run_test_harness_mock.side_effect = test_print try: with system as s, mochitest as m:
m(s(metadata)) finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
@mock.patch( # This mock.patch actually patches the mochitest run_test_harness function "runtests.run_test_harness",
new=mock.MagicMock(),
)
@mock.patch( # This mock.patch causes mochitest's runtests to be imported instead of # others in the remote_run "mochitest.runtests.run_test_harness",
new=mock.MagicMock(),
)
@mock.patch( "mozperftest.test.functionaltestrunner.mozlog.formatters.MachFormatter.__new__",
new=mock.MagicMock(),
)
@mock.patch( "mozperftest.test.mochitest.install_requirements_file", new=mock.MagicMock()
)
@mock.patch( "mozperftest.test.functionaltestrunner.load_class_from_path", new=mock.MagicMock()
)
@mock.patch("moztest.resolve.TestResolver", new=mock.MagicMock())
@mock.patch("mozperftest.test.mochitest.ON_TRY", new=True)
@mock.patch("mozperftest.utils.ON_TRY", new=True)
@mock.patch("mochitest.mochitest_options.MochitestArgumentParser", new=mock.MagicMock())
@mock.patch("manifestparser.TestManifest", new=mock.MagicMock()) def test_mochitest_ci_metrics_missing_manifest(): ifnot os.getenv("MOZ_FETCHES_DIR"):
os.environ["MOZ_FETCHES_DIR"] = "fake-path"
mach_cmd, metadata, env = running_env(
tests=[str(EXAMPLE_MOCHITEST_TEST)],
mochitest_extra_args=[],
mochitest_manifest_flavor="mocha",
)
system = env.layers[SYSTEM]
mochitest = env.layers[TEST]
try: with pytest.raises(MissingMochitestInformation) as exc: with system as s, mochitest as m:
m(s(metadata)) assert"manifest"in exc.value.args[0] finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
res = metadata.get_results() assert len(res) == 0
@mock.patch( # This mock.patch actually patches the mochitest run_test_harness function "runtests.run_test_harness",
new=mock.MagicMock(),
)
@mock.patch( # This mock.patch causes mochitest's runtests to be imported instead of # others in the remote_run "mochitest.runtests.run_test_harness",
new=mock.MagicMock(),
)
@mock.patch( "mozperftest.test.functionaltestrunner.mozlog.formatters.MachFormatter.__new__",
new=mock.MagicMock(),
)
@mock.patch( "mozperftest.test.mochitest.install_requirements_file", new=mock.MagicMock()
)
@mock.patch( "mozperftest.test.functionaltestrunner.load_class_from_path", new=mock.MagicMock()
)
@mock.patch("moztest.resolve.TestResolver", new=mock.MagicMock())
@mock.patch("mozperftest.test.mochitest.ON_TRY", new=True)
@mock.patch("mozperftest.utils.ON_TRY", new=True)
@mock.patch("mochitest.mochitest_options.MochitestArgumentParser", new=mock.MagicMock())
@mock.patch("manifestparser.TestManifest", new=mock.MagicMock()) def test_mochitest_ci_metrics_missing_flavor(): ifnot os.getenv("MOZ_FETCHES_DIR"):
os.environ["MOZ_FETCHES_DIR"] = "fake-path"
mach_cmd, metadata, env = running_env(
tests=[str(EXAMPLE_MOCHITEST_TEST)],
mochitest_extra_args=[],
mochitest_manifest="fake.ini",
)
system = env.layers[SYSTEM]
mochitest = env.layers[TEST]
try: with pytest.raises(MissingMochitestInformation) as exc: with system as s, mochitest as m:
m(s(metadata)) assert"flavor"in exc.value.args[0] finally:
shutil.rmtree(mach_cmd._mach_context.state_dir)
res = metadata.get_results() assert len(res) == 0
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.