extern crate python_parser;
use python_parser::*;
use python_parser::ast::*;
#[test]
fn test_call_and_attribute() {
let (rest, ast) = file_input(make_strspan("egg = foo.bar().baz()")).unwrap();
assert_eq!(rest.fragment.0, "");
assert_eq!(ast, vec![
Statement::Assignment(
vec![
Expression::Name("egg".to_string()),
],
vec![
vec![
Expression::Call(
Box::new(Expression::Attribute(
Box::new(Expression::Call(
Box::new(Expression::Attribute(
Box::new(Expression::Name("foo".to_string())),
"bar".to_string(),
)),
Vec::new(),
)),
"baz".to_string(),
)),
Vec::new(),
),
],
],
)
]);
}
#[test]
fn test_call_and_attribute2() {
let (rest, ast) = file_input(make_strspan("egg = foo.bar(baz, qux)")).unwrap();
assert_eq!(rest.fragment.0, "");
assert_eq!(ast, vec![
Statement::Assignment(
vec![
Expression::Name("egg".to_string()),
],
vec![
vec![
Expression::Call(
Box::new(Expression::Attribute(
Box::new(Expression::Name("foo".to_string())),
"bar".to_string(),
)),
vec![
Argument::Positional(Expression::Name("baz".to_string())),
Argument::Positional(Expression::Name("qux".to_string())),
],
),
],
],
)
]);
}