Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

import pytest
from .conftest import product, flatten
from tests.classic.new_session.support.create import invalid_data, invalid_extensions
from tests.support.asserts import assert_error
@pytest.mark.parametrize("value", [None, 1, "{}", []])
def test_invalid_capabilites(new_session, 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_capabilities, value):
capabilities = {"alwaysMatch": value, "firstMatch": [add_browser_capabilities({})]}
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_capabilities, value):
capabilities = {"alwaysMatch": add_browser_capabilities({}), "firstMatch": value}
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
@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_capabilities, body, key, value):
capabilities = body(key, value)
if "alwaysMatch" in capabilities:
capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
@pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
lambda key, value: {"firstMatch": [{key: value}]}])
@pytest.mark.parametrize("key", invalid_extensions)
def test_invalid_extensions(new_session, add_browser_capabilities, body, key):
capabilities = body(key, {})
if "alwaysMatch" in capabilities:
capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")