diff options
author | Dirkjan Ochtman <dirkjan.ochtman@ing.com> | 2019-03-18 10:06:01 +0100 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan.ochtman@ing.com> | 2019-03-18 10:06:01 +0100 |
commit | cdaf7ea35d98b6c2a4d11d57b60abf6c3ff5ccc2 (patch) | |
tree | 522122bd87f7c40f2bc7dcd4b50c6c522c7567c7 | |
parent | 88f49df0a6f6f585151711f1f45e8c450114f89e (diff) | |
download | askama-cdaf7ea35d98b6c2a4d11d57b60abf6c3ff5ccc2.tar.gz askama-cdaf7ea35d98b6c2a4d11d57b60abf6c3ff5ccc2.tar.bz2 askama-cdaf7ea35d98b6c2a4d11d57b60abf6c3ff5ccc2.zip |
Create heritage for extends-only templates (fixes #224)
Diffstat (limited to '')
-rw-r--r-- | askama_derive/src/lib.rs | 2 | ||||
-rw-r--r-- | testing/tests/inheritance.rs | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/askama_derive/src/lib.rs b/askama_derive/src/lib.rs index cf5ead9..2c02cb5 100644 --- a/askama_derive/src/lib.rs +++ b/askama_derive/src/lib.rs @@ -54,7 +54,7 @@ fn build_template(ast: &syn::DeriveInput) -> String { } let ctx = &contexts[&input.path]; - let heritage = if !ctx.blocks.is_empty() { + let heritage = if !ctx.blocks.is_empty() || ctx.extends.is_some() { Some(Heritage::new(ctx, &contexts)) } else { None diff --git a/testing/tests/inheritance.rs b/testing/tests/inheritance.rs index 35fee80..32028c4 100644 --- a/testing/tests/inheritance.rs +++ b/testing/tests/inheritance.rs @@ -29,6 +29,18 @@ fn test_simple_extends() { ); } +#[derive(Template)] +#[template(source = "{% extends \"base.html\" %}", ext = "html")] +struct EmptyChild<'a> { + title: &'a str, +} + +#[test] +fn test_empty_child() { + let t = EmptyChild { title: "baz" }; + assert_eq!(t.render().unwrap(), "baz\n\nFoo\nCopyright 2017"); +} + pub mod parent { use askama::Template; #[derive(Template)] |