name: no_params label: simplest type of template input: "{{template}}" output: [TemplateOpen(), Text(text="template"), TemplateClose()] --- name: one_param_unnamed label: basic template with one unnamed parameter input: "{{foo|bar}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateClose()] --- name: one_param_named label: basic template with one named parameter input: "{{foo|bar=baz}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamEquals(), Text(text="baz"), TemplateClose()] --- name: multiple_unnamed_params label: basic template with multiple unnamed parameters input: "{{foo|bar|baz|biz|buzz}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamSeparator(), Text(text="baz"), TemplateParamSeparator(), Text(text="biz"), TemplateParamSeparator(), Text(text="buzz"), TemplateClose()] --- name: multiple_named_params label: basic template with multiple named parameters input: "{{foo|bar=baz|biz=buzz|buff=baff|usr=bin}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamEquals(), Text(text="baz"), TemplateParamSeparator(), Text(text="biz"), TemplateParamEquals(), Text(text="buzz"), TemplateParamSeparator(), Text(text="buff"), TemplateParamEquals(), Text(text="baff"), TemplateParamSeparator(), Text(text="usr"), TemplateParamEquals(), Text(text="bin"), TemplateClose()] --- name: multiple_mixed_params label: basic template with multiple unnamed/named parameters input: "{{foo|bar=baz|biz|buzz=buff|usr|bin}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamEquals(), Text(text="baz"), TemplateParamSeparator(), Text(text="biz"), TemplateParamSeparator(), Text(text="buzz"), TemplateParamEquals(), Text(text="buff"), TemplateParamSeparator(), Text(text="usr"), TemplateParamSeparator(), Text(text="bin"), TemplateClose()] --- name: multiple_mixed_params2 label: basic template with multiple unnamed/named parameters in another order input: "{{foo|bar|baz|biz=buzz|buff=baff|usr=bin}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamSeparator(), Text(text="baz"), TemplateParamSeparator(), Text(text="biz"), TemplateParamEquals(), Text(text="buzz"), TemplateParamSeparator(), Text(text="buff"), TemplateParamEquals(), Text(text="baff"), TemplateParamSeparator(), Text(text="usr"), TemplateParamEquals(), Text(text="bin"), TemplateClose()] --- name: nested_unnamed_param label: nested template as an unnamed parameter input: "{{foo|{{bar}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateClose()] --- name: nested_named_param_value label: nested template as a parameter value with a named parameter input: "{{foo|bar={{baz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), Text(text="bar"), TemplateParamEquals(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateClose()] --- name: nested_named_param_name_and_value label: nested templates as a parameter name and value input: "{{foo|{{bar}}={{baz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateParamSeparator(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateClose()] --- name: nested_name_start label: nested template at the beginning of a template name input: "{{{{foo}}bar}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateClose()] --- name: nested_name_start_unnamed_param label: nested template at the beginning of a template name and as an unnamed parameter input: "{{{{foo}}bar|{{baz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateClose()] --- name: nested_name_start_named_param_value label: nested template at the beginning of a template name and as a parameter value with a named parameter input: "{{{{foo}}bar|baz={{biz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateParamSeparator(), Text(text="baz"), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_start_named_param_name_and_value label: nested template at the beginning of a template name and as a parameter name and value input: "{{{{foo}}bar|{{baz}}={{biz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_end label: nested template at the end of a template name input: "{{foo{{bar}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateClose()] --- name: nested_name_end_unnamed_param label: nested template at the end of a template name and as an unnamed parameter input: "{{foo{{bar}}|{{baz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateClose()] --- name: nested_name_end_named_param_value label: nested template at the end of a template name and as a parameter value with a named parameter input: "{{foo{{bar}}|baz={{biz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), Text(text="baz"), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_end_named_param_name_and_value label: nested template at the end of a template name and as a parameter name and value input: "{{foo{{bar}}|{{baz}}={{biz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_mid label: nested template in the middle of a template name input: "{{foo{{bar}}baz}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateClose()] --- name: nested_name_mid_unnamed_param label: nested template in the middle of a template name and as an unnamed parameter input: "{{foo{{bar}}baz|{{biz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateParamSeparator(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_mid_named_param_value label: nested template in the middle of a template name and as a parameter value with a named parameter input: "{{foo{{bar}}baz|biz={{buzz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateParamSeparator(), Text(text="biz"), TemplateParamEquals(), TemplateOpen(), Text(text="buzz"), TemplateClose(), TemplateClose()] --- name: nested_name_mid_named_param_name_and_value label: nested template in the middle of a template name and as a parameter name and value input: "{{foo{{bar}}baz|{{biz}}={{buzz}}}}" output: [TemplateOpen(), Text(text="foo"), TemplateOpen(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateParamSeparator(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="buzz"), TemplateClose(), TemplateClose()] --- name: nested_name_start_end label: nested template at the beginning and end of a template name input: "{{{{foo}}{{bar}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateClose()] --- name: nested_name_start_end_unnamed_param label: nested template at the beginning and end of a template name and as an unnamed parameter input: "{{{{foo}}{{bar}}|{{baz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateClose()] --- name: nested_name_start_end_named_param_value label: nested template at the beginning and end of a template name and as a parameter value with a named parameter input: "{{{{foo}}{{bar}}|baz={{biz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), Text(text="baz"), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_name_start_end_named_param_name_and_value label: nested template at the beginning and end of a template name and as a parameter name and value input: "{{{{foo}}{{bar}}|{{baz}}={{biz}}}}" output: [TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), TemplateOpen(), Text(text="bar"), TemplateClose(), TemplateParamSeparator(), TemplateOpen(), Text(text="baz"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="biz"), TemplateClose(), TemplateClose()] --- name: nested_names_multiple label: multiple nested templates within nested templates input: "{{{{{{{{foo}}bar}}baz}}biz}}" output: [TemplateOpen(), TemplateOpen(), TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateClose(), Text(text="biz"), TemplateClose()] --- name: nested_names_multiple_unnamed_param label: multiple nested templates within nested templates with a nested unnamed parameter input: "{{{{{{{{foo}}bar}}baz}}biz|{{buzz}}}}" output: [TemplateOpen(), TemplateOpen(), TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateClose(), Text(text="biz"), TemplateParamSeparator(), TemplateOpen(), Text(text="buzz"), TemplateClose(), TemplateClose()] --- name: nested_names_multiple_named_param_value label: multiple nested templates within nested templates with a nested parameter value in a named parameter input: "{{{{{{{{foo}}bar}}baz}}biz|buzz={{bin}}}}" output: [TemplateOpen(), TemplateOpen(), TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateClose(), Text(text="biz"), TemplateParamSeparator(), Text(text="buzz"), TemplateParamEquals(), TemplateOpen(), Text(text="bin"), TemplateClose(), TemplateClose()] --- name: nested_names_multiple_named_param_name_and_value label: multiple nested templates within nested templates with a nested parameter name and value input: "{{{{{{{{foo}}bar}}baz}}biz|{{buzz}}={{bin}}}}" output: [TemplateOpen(), TemplateOpen(), TemplateOpen(), TemplateOpen(), Text(text="foo"), TemplateClose(), Text(text="bar"), TemplateClose(), Text(text="baz"), TemplateClose(), Text(text="biz"), TemplateParamSeparator(), TemplateOpen(), Text(text="buzz"), TemplateClose(), TemplateParamEquals(), TemplateOpen(), Text(text="bin"), TemplateClose(), TemplateClose()] --- name: incomplete_tests "{{{{{{{{foo}}bar|baz=biz}}buzz}}usr|{{bin}}}}" "{{\nfoobar}}" "{{foobar\n}}" "{{\nfoobar\n}}" "{{foo\nbar}}" "{{\nfoo\nbar}}" "{{foo\nbar\n}}" "{{\nfoo\nbar\n}}" "{{foo|\nbar}}" "{{foo|bar\n}}" "{{foo|\nbar\n}}" "{{foo|\nb\nar}}" "{{foo|b\nar\n}}" "{{foo|\nb\nar\n}}" "{{\nfoo|\nbar}}" "{{\nfoo|bar\n}}" "{{\nfoo|\nbar\n}}" "{{\nfoo|\nb\nar}}" "{{\nfoo|b\nar\n}}" "{{\nfoo|\nb\nar\n}}" "{{foo\n|\nbar}}" "{{foo\n|bar\n}}" "{{foo\n|\nbar\n}}" "{{foo\n|\nb\nar}}" "{{foo\n|b\nar\n}}" "{{foo\n|\nb\nar\n}}" "{{\nfoo\n|\nbar}}" "{{\nfoo\n|bar\n}}" "{{\nfoo\n|\nbar\n}}" "{{\nfoo\n|\nb\nar}}" "{{\nfoo\n|b\nar\n}}" "{{\nfoo\n|\nb\nar\n}}" "{{f\noo|\nbar}}" "{{\nf\noo|\nbar}}" "{{f\noo\n|\nbar}}" "{{\nf\noo\n|\nbar}}" "{{foo|1=\nbar}}" "{{foo|1=bar\n}}" "{{foo|1=\nbar\n}}" "{{foo|1=\nb\nar}}" "{{foo|1=b\nar\n}}" "{{foo|1=\nb\nar\n}}" "{{foo|\nbar=baz}}" "{{foo|bar\n=baz}}" "{{foo|\nbar\n=baz}}" "{{foo|\nb\nar=baz}}" "{{foo|b\nar\n=baz}}" "{{foo|\nb\nar\n=baz}}" "{{foo|\nbar=baz\n}}" "{{foo|bar\n=baz\n}}" "{{foo|\nbar\n=baz\n}}" "{{foo|\nb\nar=baz\n}}" "{{foo|b\nar\n=baz\n}}" "{{foo|\nb\nar\n=baz\n}}" "{{foo|\nbar=\nbaz}}" "{{foo|bar\n=\nbaz}}" "{{foo|\nbar\n=\nbaz}}" "{{foo|\nb\nar=\nbaz}}" "{{foo|b\nar\n=\nbaz}}" "{{foo|\nb\nar\n=\nbaz}}" "{{foo|\nbar=\nbaz\n}}" "{{foo|bar\n=\nbaz\n}}" "{{foo|\nbar\n=\nbaz\n}}" "{{foo|\nb\nar=\nbaz\n}}" "{{foo|b\nar\n=\nbaz\n}}" "{{foo|\nb\nar\n=\nbaz\n}}" "{{foo|\nbar=ba\nz}}" "{{foo|bar\n=ba\nz}}" "{{foo|\nbar\n=ba\nz}}" "{{foo|\nb\nar=ba\nz}}" "{{foo|b\nar\n=ba\nz}}" "{{foo|\nb\nar\n=ba\nz}}" "{{\nfoo\n|\nbar\n=\nb\naz\n|\nb\nuz\n}}" "{{\nfoo\n|\nb\nar\n|\nbaz\n=\nb\nuz\n}}" "{{\nfoo\n|\n{{\nbar\n|\nbaz\n=\nb\niz\n}}\n=\nb\nuzz\n}}" "{{foo{bar}}" "{{foo}bar}}" "{{{foobar}}" "{{foo{b{ar}}" "{{foo[bar}}" "{{foo]bar}}" "{{[foobar}}" "{{foobar]}}" "{{foobar" "{{foobar}" "{{foobar|" "{{foo|bar" "{{foo|bar|" "{{foo|bar=" "{{foo|bar=|" "{{foo|bar=baz" "{{foo|bar=baz|" "{{foo|bar|baz" "{{foo|bar|baz=" "{{foo|bar|baz=biz" "{{foo|bar=baz|biz" "{{foo|bar=baz|biz=" "{{foo|bar=baz|biz=buzz"