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)
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 )
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
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
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
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 == ''
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"
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"
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"