2017-11-05 15:06:22 +00:00
package pongo2
2015-09-04 14:27:44 +00:00
import (
"testing"
. "gopkg.in/check.v1"
)
// Hook up gocheck into the "go test" runner.
func Test ( t * testing . T ) { TestingT ( t ) }
type TestSuite struct {
2017-11-05 15:06:22 +00:00
tpl * Template
2015-09-04 14:27:44 +00:00
}
var (
2017-11-05 15:06:22 +00:00
_ = Suite ( & TestSuite { } )
test_suite2 = NewSet ( "test suite 2" )
2015-09-04 14:27:44 +00:00
)
2017-11-05 15:06:22 +00:00
func parseTemplate ( s string , c Context ) string {
t , err := test_suite2 . FromString ( s )
2015-09-04 14:27:44 +00:00
if err != nil {
panic ( err )
}
out , err := t . Execute ( c )
if err != nil {
panic ( err )
}
return out
}
2017-11-05 15:06:22 +00:00
func parseTemplateFn ( s string , c Context ) func ( ) {
2015-09-04 14:27:44 +00:00
return func ( ) {
parseTemplate ( s , c )
}
}
func ( s * TestSuite ) TestMisc ( c * C ) {
// Must
// TODO: Add better error message (see issue #18)
2017-11-05 15:06:22 +00:00
c . Check ( func ( ) { Must ( test_suite2 . FromFile ( "template_tests/inheritance/base2.tpl" ) ) } ,
2015-09-04 14:27:44 +00:00
PanicMatches ,
2017-11-05 15:06:22 +00:00
` \[Error \(where: fromfile\) in template_tests/inheritance/doesnotexist.tpl | Line 1 Col 12 near 'doesnotexist.tpl'\] open template_tests/inheritance/doesnotexist.tpl: no such file or directory ` )
2015-09-04 14:27:44 +00:00
// Context
2017-11-05 15:06:22 +00:00
c . Check ( parseTemplateFn ( "" , Context { "'illegal" : nil } ) , PanicMatches , ".*not a valid identifier.*" )
2015-09-04 14:27:44 +00:00
// Registers
2017-11-05 15:06:22 +00:00
c . Check ( func ( ) { RegisterFilter ( "escape" , nil ) } , PanicMatches , ".*is already registered.*" )
c . Check ( func ( ) { RegisterTag ( "for" , nil ) } , PanicMatches , ".*is already registered.*" )
2015-09-04 14:27:44 +00:00
// ApplyFilter
2017-11-05 15:06:22 +00:00
v , err := ApplyFilter ( "title" , AsValue ( "this is a title" ) , nil )
2015-09-04 14:27:44 +00:00
if err != nil {
c . Fatal ( err )
}
c . Check ( v . String ( ) , Equals , "This Is A Title" )
c . Check ( func ( ) {
2017-11-05 15:06:22 +00:00
_ , err := ApplyFilter ( "doesnotexist" , nil , nil )
2015-09-04 14:27:44 +00:00
if err != nil {
panic ( err )
}
} , PanicMatches , ` \[Error \(where: applyfilter\)\] Filter with name 'doesnotexist' not found. ` )
}