def test_evaluate(context, expr, expected):
    assert expressions.evaluate(expr, context) == expected
def test_invalid_expression(context, expr):
    with pytest.raises(RuntimeExpressionError):
        expressions.evaluate(expr, context)
def test_random_expression(expr):
    try:
        expressions.evaluate(expr, context)
    except RuntimeExpressionError:
        pass
Exemple #4
0
@given(expr=(st.text() |
             (st.lists(st.sampled_from([".", "}", "{", "$"]) | st.text()).map(
                 "".join))))
def test_random_expression(expr):
    try:
        expressions.evaluate(expr, context)
    except RuntimeExpressionError:
        pass


def test_non_json_serializable_body(endpoint, response):
    case = Case(endpoint, body={"a": b"content"})
    context = expressions.ExpressionContext(response=response, case=case)
    with pytest.raises(RuntimeExpressionError,
                       match="^The request body is not JSON-serializable$"):
        expressions.evaluate("$request.body", context=context)


@pytest.mark.parametrize(
    "expr, expected",
    (
        ("$url", [Token.variable("$url")]),
        ("foo", [Token.string("foo")]),
        ("foo1", [Token.string("foo1")]),
        ("{}", [Token.lbracket(), Token.rbracket()]),
        ("{foo}", [Token.lbracket(),
                   Token.string("foo"),
                   Token.rbracket()]),
        ("{$foo}",
         [Token.lbracket(),
          Token.variable("$foo"),