mirror of https://github.com/astral-sh/ruff
test: add parser test
Signed-off-by: 11happy <bhuminjaysoni@gmail.com>
This commit is contained in:
parent
f1c394ba76
commit
f7bd94bd27
|
|
@ -0,0 +1,108 @@
|
||||||
|
---
|
||||||
|
source: crates/ruff_python_parser/src/parser/tests.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Parsed {
|
||||||
|
syntax: ModExpression {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 0..25,
|
||||||
|
body: DictComp(
|
||||||
|
ExprDictComp {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 0..25,
|
||||||
|
key: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 1..2,
|
||||||
|
id: Name("x"),
|
||||||
|
ctx: Load,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
value: BinOp(
|
||||||
|
ExprBinOp {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 4..7,
|
||||||
|
left: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 7..7,
|
||||||
|
id: Name(""),
|
||||||
|
ctx: Invalid,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
op: Pow,
|
||||||
|
right: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 6..7,
|
||||||
|
id: Name("y"),
|
||||||
|
ctx: Load,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
generators: [
|
||||||
|
Comprehension {
|
||||||
|
range: 8..24,
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
target: Tuple(
|
||||||
|
ExprTuple {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 12..16,
|
||||||
|
elts: [
|
||||||
|
Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 12..13,
|
||||||
|
id: Name("x"),
|
||||||
|
ctx: Store,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 15..16,
|
||||||
|
id: Name("y"),
|
||||||
|
ctx: Store,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
ctx: Store,
|
||||||
|
parenthesized: false,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
iter: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 20..24,
|
||||||
|
id: Name("data"),
|
||||||
|
ctx: Load,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
ifs: [],
|
||||||
|
is_async: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
tokens: Tokens {
|
||||||
|
raw: [
|
||||||
|
Lbrace 0..1,
|
||||||
|
Name 1..2,
|
||||||
|
Colon 2..3,
|
||||||
|
DoubleStar 4..6,
|
||||||
|
Name 6..7,
|
||||||
|
For 8..11,
|
||||||
|
Name 12..13,
|
||||||
|
Comma 13..14,
|
||||||
|
Name 15..16,
|
||||||
|
In 17..19,
|
||||||
|
Name 20..24,
|
||||||
|
Rbrace 24..25,
|
||||||
|
Newline 25..25,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
errors: [],
|
||||||
|
unsupported_syntax_errors: [],
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
source: crates/ruff_python_parser/src/parser/tests.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Parsed {
|
||||||
|
syntax: ModExpression {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 0..13,
|
||||||
|
body: Call(
|
||||||
|
ExprCall {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 0..13,
|
||||||
|
func: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 0..3,
|
||||||
|
id: Name("foo"),
|
||||||
|
ctx: Load,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
arguments: Arguments {
|
||||||
|
range: 3..13,
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
args: [],
|
||||||
|
keywords: [
|
||||||
|
Keyword {
|
||||||
|
range: 4..12,
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
arg: None,
|
||||||
|
value: Name(
|
||||||
|
ExprName {
|
||||||
|
node_index: NodeIndex(None),
|
||||||
|
range: 6..12,
|
||||||
|
id: Name("kwargs"),
|
||||||
|
ctx: Load,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
tokens: Tokens {
|
||||||
|
raw: [
|
||||||
|
Name 0..3,
|
||||||
|
Lpar 3..4,
|
||||||
|
DoubleStar 4..6,
|
||||||
|
Name 6..12,
|
||||||
|
Rpar 12..13,
|
||||||
|
Newline 13..13,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
errors: [],
|
||||||
|
unsupported_syntax_errors: [],
|
||||||
|
}
|
||||||
|
|
@ -157,3 +157,21 @@ t"i}'"#;
|
||||||
|
|
||||||
insta::assert_debug_snapshot!(error);
|
insta::assert_debug_snapshot!(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_dict_double_star_missing_left_operand() {
|
||||||
|
let source = r#"{x: **y for x, y in data}"#;
|
||||||
|
let parsed = parse_expression(source);
|
||||||
|
assert!(parsed.is_ok());
|
||||||
|
let result = parsed.unwrap();
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_function_kwargs() {
|
||||||
|
let source = r#"foo(**kwargs)"#;
|
||||||
|
let parsed = parse_expression(source);
|
||||||
|
assert!(parsed.is_ok());
|
||||||
|
let result = parsed.unwrap();
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue