コード例 #1
0
def test_eval_ast_node_skips_computed_values(code, expected, capsys):
    tree = ast.parse(f'foo(bar={code})')
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert node is not None
    assert eval_ast_node(node, 'bar') == expected
    assert ('Non-literal bar= passed to setup(), skipping some values'
            in capsys.readouterr().err)
コード例 #2
0
def test_eval_ast_node_type_mismatch(code, capsys):
    tree = ast.parse(f'foo(bar={code})')
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar', filename='setup.py')
    assert eval_ast_node(node, 'bar') is None
    assert (
        'bar= is computed by adding incompatible types: list and str'
        in capsys.readouterr().err
    )
コード例 #3
0
def test_eval_ast_node_failures(code, capsys):
    tree = ast.parse(f'foo(bar={code})')
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert eval_ast_node(node, 'bar') is None
    assert 'Non-literal bar= passed to setup()' in capsys.readouterr().err
コード例 #4
0
def test_eval_ast_node(code, expected):
    tree = ast.parse(f'foo(bar={code})')
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert node is not None
    assert eval_ast_node(node, 'bar') == expected
コード例 #5
0
def test_find_call_kwarg_in_ast_no_call(capsys):
    tree = ast.parse('fooo(bar="foo")')
    ast.dump(tree)
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert node is None
    assert 'Could not find foo() call in setup.py' in capsys.readouterr().err
コード例 #6
0
def test_find_call_kwarg_in_ast_no_arg(capsys):
    tree = ast.parse('foo(baz="foo")')
    ast.dump(tree)
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert node is None
    assert capsys.readouterr().err == ''
コード例 #7
0
def test_find_call_kwarg_in_ast():
    tree = ast.parse('foo(bar="foo")')
    ast.dump(tree)
    node = find_call_kwarg_in_ast(tree, 'foo', 'bar')
    assert isinstance(node, ast.Str)
    assert node.s == "foo"
コード例 #8
0
def test_find_call_kwarg_in_ast_alternatives():
    tree = ast.parse('mod.foo(bar="gronk")')
    node = find_call_kwarg_in_ast(tree, {'foo', 'mod.foo'}, 'bar',
                                  filename='a.py')
    assert isinstance(node, ast.Str)
    assert node.s == "gronk"
コード例 #9
0
def test_find_call_kwarg_in_ast_dotted():
    tree = ast.parse('mod.foo(bar="gronk")')
    node = find_call_kwarg_in_ast(tree, 'mod.foo', 'bar', filename='setup.py')
    assert isinstance(node, ast.Str)
    assert node.s == "gronk"