diff --git a/src/app/tests/api-spec/main/examples/echo_get.json b/src/app/tests/api-spec/main/examples/echo_get.json index 1352c62..fd5d85b 100644 --- a/src/app/tests/api-spec/main/examples/echo_get.json +++ b/src/app/tests/api-spec/main/examples/echo_get.json @@ -7,7 +7,7 @@ "content-type": "application/json", "code": 200, "body": { - "message": "Hello" + "message": "Helloz" } } } diff --git a/src/app/tests/conftest.py b/src/app/tests/conftest.py new file mode 100644 index 0000000..08453d2 --- /dev/null +++ b/src/app/tests/conftest.py @@ -0,0 +1,10 @@ +import pytest + +pytest.register_assert_rewrite('app.testutils') + + +def pytest_assertrepr_compare(config, op, left, right): + return [ + "Failed assertion:", + " vals: {} {} {}".format(left.val, op, right.val), + ] diff --git a/src/app/testutils.py b/src/app/testutils.py index 9eb150e..68c1aea 100644 --- a/src/app/testutils.py +++ b/src/app/testutils.py @@ -150,15 +150,16 @@ def check_response(response: ResponseWrapper, sample: AttrDict) -> None: f"Sample {sample.name}: Unexpected response code. Expected {expected_code}, found: {response.status_code}") for key, expected_value in expected_response.body.item_list(): response_value = getattr(response.body, key) + op = '==' if isinstance(expected_value, AttrDict): - op = expected_value.get('op', "==") - if isinstance(expected_value.value, list): - op = 'in' # pragma: no cover - opmethod = operator_map.get(op) - if not opmethod: - raise ValueError(f"Sample {sample.name}: Unknown operator: {op}") # pragma: no cover + op = expected_value.get('op', op) expected_value = expected_value.value - assert opmethod(response_value, expected_value), ( - f"Sample {sample.name}: Test '{key} {op} {expected_value}' failed. Found: {response_value}") - else: - assert response_value == expected_value + if isinstance(expected_value, list) and op == '==': + op = 'in' # pragma: no cover + try: + opmethod = operator_map[op] + except KeyError: # pragma: no cover + raise ValueError(f"Sample {sample.name}: Unknown operator: {op}") # pragma: no cover + assert opmethod(response_value, expected_value), ( + f"Sample {sample.name}: Failed assertion: {key} {op} {repr(expected_value)} . " + f"Found: {repr(response_value)}")