diff options
author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2023-10-23 13:32:37 +0200 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2023-10-23 15:13:27 +0200 |
commit | a7f5186bf49ef20010c2eae7717b3a738a3b548e (patch) | |
tree | dcc1d87b4ba2b916706739f85e505062cb73303d | |
parent | 5ee2dfbe6bf901c7c731e9b94ba92b82f09e9101 (diff) | |
download | askama-a7f5186bf49ef20010c2eae7717b3a738a3b548e.tar.gz askama-a7f5186bf49ef20010c2eae7717b3a738a3b548e.tar.bz2 askama-a7f5186bf49ef20010c2eae7717b3a738a3b548e.zip |
Add test specifically for named blocks, and named macros
-rw-r--r-- | testing/templates/named-end.html | 9 | ||||
-rw-r--r-- | testing/tests/inheritance.rs | 12 | ||||
-rw-r--r-- | testing/tests/ui/name_mismatch_endblock.rs | 8 | ||||
-rw-r--r-- | testing/tests/ui/name_mismatch_endblock.stderr | 8 | ||||
-rw-r--r-- | testing/tests/ui/name_mismatch_endmacro.rs | 8 | ||||
-rw-r--r-- | testing/tests/ui/name_mismatch_endmacro.stderr | 8 |
6 files changed, 53 insertions, 0 deletions
diff --git a/testing/templates/named-end.html b/testing/templates/named-end.html new file mode 100644 index 0000000..35eb0bb --- /dev/null +++ b/testing/templates/named-end.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{# Testing named "endmacro" #} +{% macro foo(b) -%} + {% if b %}t{% else %}f{% endif -%} +{% endmacro foo -%} +{# Testing named endblock declaration #} +{% block what %}{% endblock what %} +{# Testing named endblock call #} +{% block foo %}tadam{% endblock foo %} diff --git a/testing/tests/inheritance.rs b/testing/tests/inheritance.rs index 5d8aefb..906be04 100644 --- a/testing/tests/inheritance.rs +++ b/testing/tests/inheritance.rs @@ -340,3 +340,15 @@ fn test_let_block() { let t = LetChild {}; assert_eq!(t.render().unwrap(), "1"); } + +#[derive(Template)] +#[template(path = "named-end.html")] +struct NamedBlocks<'a> { + title: &'a str, +} + +#[test] +fn test_named_end() { + let n = NamedBlocks { title: "title" }; + assert_eq!(n.render().unwrap(), "title\n\ntadam\nCopyright 2017"); +} diff --git a/testing/tests/ui/name_mismatch_endblock.rs b/testing/tests/ui/name_mismatch_endblock.rs new file mode 100644 index 0000000..9fbfbe4 --- /dev/null +++ b/testing/tests/ui/name_mismatch_endblock.rs @@ -0,0 +1,8 @@ +use askama::Template; + +#[derive(Template)] +#[template(source = "{% block foo %}{% endblock not_foo %}", ext = "html")] +struct NameMismatchEndBlock; + +fn main() { +} diff --git a/testing/tests/ui/name_mismatch_endblock.stderr b/testing/tests/ui/name_mismatch_endblock.stderr new file mode 100644 index 0000000..2cd7aaf --- /dev/null +++ b/testing/tests/ui/name_mismatch_endblock.stderr @@ -0,0 +1,8 @@ +error: problems parsing template source at row 1, column 27 near: + "not_foo %}" + --> tests/ui/name_mismatch_endblock.rs:3:10 + | +3 | #[derive(Template)] + | ^^^^^^^^ + | + = note: this error originates in the derive macro `Template` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/testing/tests/ui/name_mismatch_endmacro.rs b/testing/tests/ui/name_mismatch_endmacro.rs new file mode 100644 index 0000000..10ea31f --- /dev/null +++ b/testing/tests/ui/name_mismatch_endmacro.rs @@ -0,0 +1,8 @@ +use askama::Template; + +#[derive(Template)] +#[template(source = "{% macro foo(arg) %} {{arg}} {% endmacro not_foo %}", ext = "html")] +struct NameMismatchEndMacro; + +fn main() { +} diff --git a/testing/tests/ui/name_mismatch_endmacro.stderr b/testing/tests/ui/name_mismatch_endmacro.stderr new file mode 100644 index 0000000..ef389a2 --- /dev/null +++ b/testing/tests/ui/name_mismatch_endmacro.stderr @@ -0,0 +1,8 @@ +error: problems parsing template source at row 1, column 41 near: + "not_foo %}" + --> tests/ui/name_mismatch_endmacro.rs:3:10 + | +3 | #[derive(Template)] + | ^^^^^^^^ + | + = note: this error originates in the derive macro `Template` (in Nightly builds, run with -Z macro-backtrace for more info) |