Bug 1227367 - Test exit codes in marionette-client runtests.cli; r=automatedtester draft
authorMaja Frydrychowicz <mjzffr@gmail.com>
Thu, 31 Mar 2016 00:37:19 -0400
changeset 346795 30b73922c077a55fd0f85b5836ec6bbfc6cb7826
parent 346552 538d248fa252a4100082fd9bc3fdc08d322cda22
child 346796 26a166e20a8e066f87c095c312d3bd5fa008b43c
child 347343 d9f0ca938541206cb109ce6fc04f12438f719c91
child 347418 f0b8d79465b5b19ceabc3186d74e7565ecc87d1c
push id14447
push usermjzffr@gmail.com
push dateFri, 01 Apr 2016 17:22:28 +0000
reviewersautomatedtester
bugs1227367
milestone48.0a1
Bug 1227367 - Test exit codes in marionette-client runtests.cli; r=automatedtester Initial tests for the Marionette Python runner/harness. MozReview-Commit-ID: 9KSSOOmpzUF
testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
new file mode 100644
--- /dev/null
+++ b/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
@@ -0,0 +1,32 @@
+# 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 marionette import runtests
+
+@pytest.fixture
+def harness_class(request):
+    failures = request.getfuncargvalue('num_failures')
+
+    class Harness(object):
+        def __init__(*args, **kwargs):
+            pass
+
+        def run(*args, **kwargs):
+            if failures is None:
+                raise Exception
+            else:
+                return failures
+
+    return Harness
+
+
+@pytest.mark.parametrize(
+    "num_failures,exit_code",
+    [(0, 0), (1, 10), (None, 1)],
+)
+def test_cli_exit_code(num_failures, exit_code, harness_class):
+    with pytest.raises(SystemExit) as err:
+        runtests.cli(harness_class=harness_class)
+    assert err.value.code == exit_code