Bug 1470533 - [wdspec] Have "New Session" tests use a shared command fixture. draft
authorHenrik Skupin <mail@hskupin.info>
Mon, 25 Jun 2018 14:40:10 +0200
changeset 810804 e0e46c7b1d7c7b88b96548beb350080c51f28672
parent 810803 46af939560ec893fb2d7bc8bf51ccda94c442b2f
push id114117
push userbmo:hskupin@gmail.com
push dateTue, 26 Jun 2018 15:03:37 +0000
bugs1470533
milestone63.0a1
Bug 1470533 - [wdspec] Have "New Session" tests use a shared command fixture. All the "New Session" tests have specific requirements in what is getting passed as body to the "New Session" command as defined by the WebDriver specification. This also includes all invalid cases which are basically never used by the global session fixtures. This also aligns these tests with the rest of the wdspec test suite which all use a shared command function. Given the complexity of this "new_session" function, it is implemented as fixture. MozReview-Commit-ID: IkHdx4UtaBy
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/webdriver/tests/new_session/response.py.ini
testing/web-platform/tests/webdriver/tests/new_session/conftest.py
testing/web-platform/tests/webdriver/tests/new_session/create_alwaysMatch.py
testing/web-platform/tests/webdriver/tests/new_session/create_firstMatch.py
testing/web-platform/tests/webdriver/tests/new_session/default_values.py
testing/web-platform/tests/webdriver/tests/new_session/invalid_capabilities.py
testing/web-platform/tests/webdriver/tests/new_session/merge.py
testing/web-platform/tests/webdriver/tests/new_session/response.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -404681,19 +404681,17 @@
      {
       "timeout": "long"
      }
     ]
    ],
    "webdriver/tests/new_session/invalid_capabilities.py": [
     [
      "/webdriver/tests/new_session/invalid_capabilities.py",
-     {
-      "timeout": "long"
-     }
+     {}
     ]
    ],
    "webdriver/tests/new_session/merge.py": [
     [
      "/webdriver/tests/new_session/merge.py",
      {
       "timeout": "long"
      }
@@ -619080,41 +619078,41 @@
    "6274392529489518207961ed5e6b6bb3ff081572",
    "wdspec"
   ],
   "webdriver/tests/new_session/__init__.py": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/new_session/conftest.py": [
-   "d2df38e506cb9a3e501f03fe03e2a31af42d6f04",
+   "72798e95422e70158c26b60aabc27a480bac8758",
    "support"
   ],
   "webdriver/tests/new_session/create_alwaysMatch.py": [
-   "84f8ad0908e9ec787f9db73ff66cbe193c2c9626",
+   "b2783003e5e1a7d762a4340b33f65d6afd9b0e62",
    "wdspec"
   ],
   "webdriver/tests/new_session/create_firstMatch.py": [
-   "fbdabf1852c07db0f5df2d47954c1cd5d7285492",
+   "a3f2156bea16ae9eb270794a2b5a0c1a39c3e631",
    "wdspec"
   ],
   "webdriver/tests/new_session/default_values.py": [
-   "92c26366f8fd0d37587457b9b5a630df4b19cc60",
+   "596830d45fc6c9f8a5ad1e91f79d580adf32ff54",
    "wdspec"
   ],
   "webdriver/tests/new_session/invalid_capabilities.py": [
-   "fcc36e5ca46cb8a9fb9927d5f618c7e9433a0260",
+   "547c60d0dd9a5596e7f06a026ee04f071c46e4f5",
    "wdspec"
   ],
   "webdriver/tests/new_session/merge.py": [
-   "000b28631bb6d862b654f1f998852f5f1a6b2e12",
+   "5022b2f05cb618167ad7d6a23f886c7f39907212",
    "wdspec"
   ],
   "webdriver/tests/new_session/response.py": [
-   "5eabb99858b9c3051efb351096d7ba8dca8dbfce",
+   "6093d95910f0994a8189f3d8df223ccc7ef97062",
    "wdspec"
   ],
   "webdriver/tests/new_session/support/__init__.py": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/new_session/support/create.py": [
    "4bfb99fd4ba44ab5b4e70e9246cbb200c098ae89",
--- a/testing/web-platform/meta/webdriver/tests/new_session/response.py.ini
+++ b/testing/web-platform/meta/webdriver/tests/new_session/response.py.ini
@@ -1,7 +1,7 @@
 [response.py]
-  [test_resp_capabilites]
+  [test_capabilites]
     expected: FAIL
 
-  [test_resp_data]
+  [test_data]
     expected: FAIL
 
--- a/testing/web-platform/tests/webdriver/tests/new_session/conftest.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/conftest.py
@@ -1,22 +1,64 @@
-import pytest
 import sys
 
-import webdriver
+import pytest
+
+from webdriver.transport import HTTPWireProtocol
 
 
 def product(a, b):
     return [(a, item) for item in b]
 
 
 def flatten(l):
     return [item for x in l for item in x]
 
+
+@pytest.fixture(name="new_session")
+def fixture_new_session(request, configuration, current_session):
+    """Start a new session for tests which themselves test creating new sessions.
+
+    :param body: The content of the body for the new session POST request.
+
+    :param delete_existing_session: Allows the fixture to delete an already
+     created custom session before the new session is getting created. This
+     is useful for tests which call this fixture multiple times within the
+     same test.
+    """
+    custom_session = {}
+
+    transport = HTTPWireProtocol(
+        configuration["host"], configuration["port"], url_prefix="/",
+    )
+
+    def _delete_session(session_id):
+        transport.send("DELETE", "session/{}".format(session_id))
+
+    def new_session(body, delete_existing_session=False):
+        # If there is an active session from the global session fixture,
+        # delete that one first
+        if current_session is not None:
+            current_session.end()
+
+        if delete_existing_session:
+            _delete_session(custom_session["session"]["sessionId"])
+
+        response = transport.send("POST", "session", body)
+        if response.status == 200:
+            custom_session["session"] = response.body["value"]
+        return response, custom_session.get("session", None)
+
+    yield new_session
+
+    if custom_session.get("session") is not None:
+        _delete_session(custom_session["session"]["sessionId"])
+        custom_session = None
+
+
 @pytest.fixture(scope="session")
 def platform_name():
     return {
         "linux2": "linux",
         "win32": "windows",
         "cygwin": "windows",
         "darwin": "mac"
     }.get(sys.platform)
-
--- a/testing/web-platform/tests/webdriver/tests/new_session/create_alwaysMatch.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/create_alwaysMatch.py
@@ -1,13 +1,15 @@
-#META: timeout=long
+# META: timeout=long
 
 import pytest
 
 from conftest import product, flatten
 
-from support.create import valid_data
+from tests.support.asserts import assert_success
+from tests.new_session.support.create import valid_data
 
 
 @pytest.mark.parametrize("key,value", flatten(product(*item) for item in valid_data))
 def test_valid(new_session, add_browser_capabilites, key, value):
-    resp = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({key: value})}})
-
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({key: value})}})
+    assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/new_session/create_firstMatch.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/create_firstMatch.py
@@ -1,12 +1,16 @@
-#META: timeout=long
+# META: timeout=long
 
 import pytest
 
 from conftest import product, flatten
 
-from support.create import valid_data
+
+from tests.support.asserts import assert_success
+from tests.new_session.support.create import valid_data
 
 
 @pytest.mark.parametrize("key,value", flatten(product(*item) for item in valid_data))
 def test_valid(new_session, add_browser_capabilites, key, value):
-    resp = new_session({"capabilities": {"firstMatch": [add_browser_capabilites({key: value})]}})
+    response, _ = new_session({"capabilities": {
+        "firstMatch": [add_browser_capabilites({key: value})]}})
+    assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/new_session/default_values.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/default_values.py
@@ -1,48 +1,55 @@
 # META: timeout=long
 
-import uuid
-
-import pytest
-
-from webdriver import error
+from tests.support.asserts import assert_error, assert_success
 
 
 def test_basic(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
-    assert set(resp.keys()) == {"sessionId", "capabilities"}
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    value = assert_success(response)
+    assert set(value.keys()) == {"sessionId", "capabilities"}
 
 
 def test_repeat_new_session(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
-    with pytest.raises(error.SessionNotCreatedException):
-        new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    assert_success(response)
+
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    assert_error(response, "session not created")
 
 
 def test_no_capabilites(new_session):
-    with pytest.raises(error.InvalidArgumentException):
-        new_session({})
+    response, _ = new_session({})
+    assert_error(response, "invalid argument")
 
 
 def test_missing_first_match(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    assert_success(response)
 
 
 def test_missing_always_match(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"firstMatch": [add_browser_capabilites({})]}})
+    response, _ = new_session({"capabilities": {"firstMatch": [add_browser_capabilites({})]}})
+    assert_success(response)
 
 
 def test_desired(new_session, add_browser_capabilites):
-    with pytest.raises(error.InvalidArgumentException):
-        resp, _ = new_session({"desiredCapbilities": add_browser_capabilites({})})
+    response, _ = new_session({"desiredCapbilities": add_browser_capabilites({})})
+    assert_error(response, "invalid argument")
 
 
 def test_ignore_non_spec_fields_in_capabilities(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({}), "desiredCapbilities": {"pageLoadStrategy": "eager"}}})
-    assert resp["capabilities"]["pageLoadStrategy"] == "normal"
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({}),
+        "desiredCapbilities": {"pageLoadStrategy": "eager"},
+    }})
+    value = assert_success(response)
+    assert value["capabilities"]["pageLoadStrategy"] == "normal"
 
 
 def test_valid_but_unmatchable_key(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {
-      "firstMatch": [add_browser_capabilites({"pageLoadStrategy": "eager", "foo:unmatchable": True}),
-                     {"pageLoadStrategy": "none"}]}})
-    assert resp["capabilities"]["pageLoadStrategy"] == "none"
+    response, _ = new_session({"capabilities": {"firstMatch": [
+        add_browser_capabilites({"pageLoadStrategy": "eager", "foo:unmatchable": True}),
+        {"pageLoadStrategy": "none"},
+    ]}})
+    value = assert_success(response)
+    assert value["capabilities"]["pageLoadStrategy"] == "none"
--- a/testing/web-platform/tests/webdriver/tests/new_session/invalid_capabilities.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/invalid_capabilities.py
@@ -1,32 +1,34 @@
-#META: timeout=long
+import pytest
 
-import pytest
-from webdriver import error
-
+from tests.support.asserts import assert_error
 from conftest import product, flatten
 
 
 @pytest.mark.parametrize("value", [None, 1, "{}", []])
 def test_invalid_capabilites(new_session, value):
-    with pytest.raises(error.InvalidArgumentException):
-        new_session({"capabilities": value})
+    response, _ = new_session({"capabilities": value})
+    assert_error(response, "invalid argument")
 
 
 @pytest.mark.parametrize("value", [None, 1, "{}", []])
 def test_invalid_always_match(new_session, add_browser_capabilites, value):
-    with pytest.raises(error.InvalidArgumentException):
-        new_session({"capabilities": {"alwaysMatch": value, "firstMatch": [add_browser_capabilites({})]}})
+    capabilities = {"alwaysMatch": value, "firstMatch": [add_browser_capabilites({})]}
+
+    response, _ = new_session({"capabilities": capabilities})
+    assert_error(response, "invalid argument")
 
 
 @pytest.mark.parametrize("value", [None, 1, "[]", {}])
 def test_invalid_first_match(new_session, add_browser_capabilites, value):
-    with pytest.raises(error.InvalidArgumentException):
-        new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({}), "firstMatch": value}})
+    capabilities = {"alwaysMatch": add_browser_capabilites({}), "firstMatch": value}
+
+    response, _ = new_session({"capabilities": capabilities})
+    assert_error(response, "invalid argument")
 
 
 invalid_data = [
     ("acceptInsecureCerts", [1, [], {}, "false"]),
     ("browserName", [1, [], {}, False]),
     ("browserVersion", [1, [], {}, False]),
     ("platformName", [1, [], {}, False]),
     ("pageLoadStrategy", [1, [], {}, False, "invalid", "NONE", "Eager", "eagerblah", "interactive",
@@ -41,27 +43,29 @@ invalid_data = [
                   {"page load": 10}, {"pageLoad": "10"}, {"pageLoad": {"value": 10}},
                   {"invalid": 10}, {"pageLoad": -1}, {"pageLoad": 2**64},
                   {"pageLoad": None}, {"pageLoad": 1.1}, {"pageLoad": 10, "invalid": 10},
                   {" pageLoad": 10}, {"pageLoad ": 10}]),
     ("unhandledPromptBehavior", [1, [], {}, False, "DISMISS", "dismissABC", "Accept",
                                  " dismiss", "dismiss "])
 ]
 
+
 @pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
                                   lambda key, value: {"firstMatch": [{key: value}]}])
 @pytest.mark.parametrize("key,value", flatten(product(*item) for item in invalid_data))
 def test_invalid_values(new_session, add_browser_capabilites, body, key, value):
     capabilities = body(key, value)
     if "alwaysMatch" in capabilities:
         capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
     else:
         capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
-    with pytest.raises(error.InvalidArgumentException):
-        resp = new_session({"capabilities": capabilities})
+
+    response, _ = new_session({"capabilities": capabilities})
+    assert_error(response, "invalid argument")
 
 
 invalid_extensions = [
     "firefox",
     "firefox_binary",
     "firefoxOptions",
     "chromeOptions",
     "automaticInspection",
@@ -88,11 +92,11 @@ invalid_extensions = [
                                   lambda key, value: {"firstMatch": [{key: value}]}])
 @pytest.mark.parametrize("key", invalid_extensions)
 def test_invalid_extensions(new_session, add_browser_capabilites, body, key):
     capabilities = body(key, {})
     if "alwaysMatch" in capabilities:
         capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
     else:
         capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
-    with pytest.raises(error.InvalidArgumentException):
-        resp = new_session({"capabilities": capabilities})
 
+    response, _ = new_session({"capabilities": capabilities})
+    assert_error(response, "invalid argument")
--- a/testing/web-platform/tests/webdriver/tests/new_session/merge.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/merge.py
@@ -1,81 +1,82 @@
-#META: timeout=long
+# META: timeout=long
 
 import pytest
-from webdriver import error
 
+from tests.support.asserts import assert_error, assert_success
 from conftest import platform_name
 
 
 @pytest.mark.skipif(platform_name() is None, reason="Unsupported platform")
 @pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
                                   lambda key, value: {"firstMatch": [{key: value}]}])
 def test_platform_name(new_session, add_browser_capabilites, platform_name, body):
     capabilities = body("platformName", platform_name)
     if "alwaysMatch" in capabilities:
         capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
     else:
         capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
-    resp, _ = new_session({"capabilities": capabilities})
-    assert resp["capabilities"]["platformName"] == platform_name
+
+    response, _ = new_session({"capabilities": capabilities})
+    value = assert_success(response)
+
+    assert value["capabilities"]["platformName"] == platform_name
 
 
 invalid_merge = [
     ("acceptInsecureCerts", (True, True)),
     ("unhandledPromptBehavior", ("accept", "accept")),
     ("unhandledPromptBehavior", ("accept", "dismiss")),
     ("timeouts", ({"script": 10}, {"script": 10})),
     ("timeouts", ({"script": 10}, {"pageLoad": 10})),
 ]
 
 
 @pytest.mark.parametrize("key,value", invalid_merge)
 def test_merge_invalid(new_session, add_browser_capabilites, key, value):
-    with pytest.raises(error.InvalidArgumentException):
-         new_session({"capabilities":
-                      {"alwaysMatch": add_browser_capabilites({key: value[0]}),
-                       "firstMatch": [{}, {key: value[1]}]}})
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({key: value[0]}),
+        "firstMatch": [{}, {key: value[1]}],
+    }})
+    assert_error(response, "invalid argument")
 
 
 @pytest.mark.skipif(platform_name() is None, reason="Unsupported platform")
 def test_merge_platformName(new_session, add_browser_capabilites, platform_name):
-    resp, _ = new_session({"capabilities":
-                        {"alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
-                        "firstMatch": [
-                            {
-                                "platformName": platform_name.upper(),
-                                "pageLoadStrategy": "none"
-                            },
-                            {
-                                "platformName": platform_name,
-                                "pageLoadStrategy": "eager"
-                            }
-                        ]}})
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
+        "firstMatch": [{
+            "platformName": platform_name.upper(),
+            "pageLoadStrategy": "none",
+        }, {
+            "platformName": platform_name,
+            "pageLoadStrategy": "eager",
+        }]}})
 
-    assert resp["capabilities"]["platformName"] == platform_name
-    assert resp["capabilities"]["pageLoadStrategy"] == "eager"
+    value = assert_success(response)
+
+    assert value["capabilities"]["platformName"] == platform_name
+    assert value["capabilities"]["pageLoadStrategy"] == "eager"
 
 
 def test_merge_browserName(new_session, add_browser_capabilites):
-    resp, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    response, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    value = assert_success(response)
+
     browser_settings = {
-        "browserName": resp["capabilities"]["browserName"],
-        "browserVersion": resp["capabilities"]["browserVersion"],
-        "platformName": resp["capabilities"]["platformName"]
+        "browserName": value["capabilities"]["browserName"],
+        "browserVersion": value["capabilities"]["browserVersion"],
     }
-    session.end()
 
-    resp, _ = new_session({"capabilities":
-                        {"alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
-                        "firstMatch": [
-                            {
-                                "browserName": browser_settings["browserName"] + "invalid",
-                                "pageLoadStrategy": "none"
-                            },
-                            {
-                                "browserName": browser_settings["browserName"],
-                                "pageLoadStrategy": "eager"
-                            }
-                        ]}})
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
+        "firstMatch": [{
+            "browserName": browser_settings["browserName"] + "invalid",
+            "pageLoadStrategy": "none",
+        }, {
+            "browserName": browser_settings["browserName"],
+            "pageLoadStrategy": "eager",
+        }]}}, delete_existing_session=True)
+    value = assert_success(response)
 
-    assert resp["capabilities"]["browserName"] == browser_settings['browserName']
-    assert resp["capabilities"]["pageLoadStrategy"] == "eager"
+    assert value["capabilities"]["browserName"] == browser_settings['browserName']
+    assert value["capabilities"]["pageLoadStrategy"] == "eager"
--- a/testing/web-platform/tests/webdriver/tests/new_session/response.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/response.py
@@ -1,54 +1,74 @@
 # META: timeout=long
 
 import uuid
 
-def test_resp_sessionid(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
-    assert isinstance(resp["sessionId"], unicode)
-    uuid.UUID(hex=resp["sessionId"])
+from tests.support.asserts import assert_success
+
+
+def test_sessionid(new_session, add_browser_capabilites):
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    value = assert_success(response)
+    assert isinstance(value["sessionId"], basestring)
+    uuid.UUID(hex=value["sessionId"])
 
 
-def test_resp_capabilites(new_session, add_browser_capabilites):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
-    assert isinstance(resp["sessionId"], unicode)
-    assert isinstance(resp["capabilities"], dict)
-    assert {"browserName",
-            "browserVersion",
-            "platformName",
-            "acceptInsecureCerts",
-            "setWindowRect",
-            "timeouts",
-            "proxy",
-            "pageLoadStrategy"}.issubset(
-                set(resp["capabilities"].keys()))
+def test_capabilites(new_session, add_browser_capabilites):
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    value = assert_success(response)
+    assert isinstance(value["capabilities"], dict)
+
+    all_capabilities = set(value["capabilities"].keys())
+    expected_capabilities = {
+        "browserName",
+        "browserVersion",
+        "platformName",
+        "acceptInsecureCerts",
+        "setWindowRect",
+        "timeouts",
+        "proxy",
+        "pageLoadStrategy",
+    }
+
+    assert expected_capabilities.issubset(all_capabilities), (
+        "{0} cannot be found in {1}".format(
+            list(expected_capabilities - all_capabilities), all_capabilities))
 
 
-def test_resp_data(new_session, add_browser_capabilites, platform_name):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_data(new_session, add_browser_capabilites, platform_name):
+    response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+    value = assert_success(response)
 
-    assert isinstance(resp["capabilities"]["browserName"], unicode)
-    assert isinstance(resp["capabilities"]["browserVersion"], unicode)
+    assert isinstance(value["capabilities"]["browserName"], basestring)
+    assert isinstance(value["capabilities"]["browserVersion"], basestring)
     if platform_name:
-        assert resp["capabilities"]["platformName"] == platform_name
+        assert value["capabilities"]["platformName"] == platform_name
     else:
-        assert "platformName" in resp["capabilities"]
-    assert resp["capabilities"]["acceptInsecureCerts"] is False
-    assert isinstance(resp["capabilities"]["setWindowRect"], bool)
-    assert resp["capabilities"]["timeouts"]["implicit"] == 0
-    assert resp["capabilities"]["timeouts"]["pageLoad"] == 300000
-    assert resp["capabilities"]["timeouts"]["script"] == 30000
-    assert resp["capabilities"]["proxy"] == {}
-    assert resp["capabilities"]["pageLoadStrategy"] == "normal"
+        assert "platformName" in value["capabilities"]
+    assert value["capabilities"]["acceptInsecureCerts"] is False
+    assert isinstance(value["capabilities"]["setWindowRect"], bool)
+    assert value["capabilities"]["timeouts"]["implicit"] == 0
+    assert value["capabilities"]["timeouts"]["pageLoad"] == 300000
+    assert value["capabilities"]["timeouts"]["script"] == 30000
+    assert value["capabilities"]["proxy"] == {}
+    assert value["capabilities"]["pageLoadStrategy"] == "normal"
 
 
 def test_timeouts(new_session, add_browser_capabilites, platform_name):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"timeouts": {"implicit": 1000}})}})
-    assert resp["capabilities"]["timeouts"] == {
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({"timeouts": {"implicit": 1000}}),
+    }})
+    value = assert_success(response)
+
+    assert value["capabilities"]["timeouts"] == {
         "implicit": 1000,
         "pageLoad": 300000,
         "script": 30000
     }
 
+
 def test_pageLoadStrategy(new_session, add_browser_capabilites, platform_name):
-    resp, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"pageLoadStrategy": "eager"})}})
-    assert resp["capabilities"]["pageLoadStrategy"] == "eager"
+    response, _ = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({"pageLoadStrategy": "eager"})}})
+    value = assert_success(response)
+
+    assert value["capabilities"]["pageLoadStrategy"] == "eager"