aboutsummaryrefslogtreecommitdiffstats
path: root/askama_parser/src/tests.rs
diff options
context:
space:
mode:
authorLibravatar René Kijewski <rene.kijewski@fu-berlin.de>2023-07-31 20:54:47 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2023-07-31 21:29:35 +0200
commit107bdfdd7658919691948f629adf2254cd6aa367 (patch)
tree7d28e7b08e7bf30bc9298fdc1466476624ca50ac /askama_parser/src/tests.rs
parent18b6d2f38ac51dfa3207c4d509567cd0db937274 (diff)
downloadaskama-107bdfdd7658919691948f629adf2254cd6aa367.tar.gz
askama-107bdfdd7658919691948f629adf2254cd6aa367.tar.bz2
askama-107bdfdd7658919691948f629adf2254cd6aa367.zip
Fix parsing calls
This change: * adds a cut when the leading `(` was encountered, and * fixed the interaction between call expressions and boolean OR.
Diffstat (limited to 'askama_parser/src/tests.rs')
-rw-r--r--askama_parser/src/tests.rs27
1 files changed, 26 insertions, 1 deletions
diff --git a/askama_parser/src/tests.rs b/askama_parser/src/tests.rs
index 5b3b66e..2beeb38 100644
--- a/askama_parser/src/tests.rs
+++ b/askama_parser/src/tests.rs
@@ -493,9 +493,34 @@ fn test_odd_calls() {
Ast::from_str("{{ -a(b) }}", &syntax).unwrap().nodes,
vec![Node::Expr(
Ws(None, None),
- Unary("-", Box::new(Call(Box::new(Var("a")), vec![Var("b")])),),
+ Unary("-", Box::new(Call(Box::new(Var("a")), vec![Var("b")]))),
)],
);
+ assert_eq!(
+ Ast::from_str("{{ a(b)|c }}", &syntax).unwrap().nodes,
+ vec![Node::Expr(
+ Ws(None, None),
+ Filter("c", vec![Call(Box::new(Var("a")), vec![Var("b")])]),
+ )]
+ );
+ assert_eq!(
+ Ast::from_str("{{ a(b)| c }}", &syntax).unwrap().nodes,
+ vec![Node::Expr(
+ Ws(None, None),
+ Filter("c", vec![Call(Box::new(Var("a")), vec![Var("b")])]),
+ )]
+ );
+ assert_eq!(
+ Ast::from_str("{{ a(b) |c }}", &syntax).unwrap().nodes,
+ vec![Node::Expr(
+ Ws(None, None),
+ BinOp(
+ "|",
+ Box::new(Call(Box::new(Var("a")), vec![Var("b")])),
+ Box::new(Var("c"))
+ ),
+ )]
+ );
}
#[test]