Skip to content

Commit 1e3a84b

Browse files
committed
Better Error messages and location information. Updates #53
1 parent a948b51 commit 1e3a84b

5 files changed

Lines changed: 11 additions & 10 deletions

File tree

pongo2_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ func parseTemplateFn(s string, c Context) func() {
4040
func (s *TestSuite) TestMisc(c *C) {
4141
// Must
4242
// TODO: Add better error message (see issue #18)
43-
c.Check(func() { Must(test_suite2.FromFile("template_tests/inheritance/base2.tpl")) }, PanicMatches, `\[Error \(where: fromfile\) in template_tests/inheritance/doesnotexist.tpl\] open template_tests/inheritance/doesnotexist.tpl: no such file or directory`)
43+
c.Check(func() { Must(test_suite2.FromFile("template_tests/inheritance/base2.tpl")) },
44+
PanicMatches,
45+
`\[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`)
4446

4547
// Context
4648
c.Check(parseTemplateFn("", Context{"'illegal": nil}), PanicMatches, ".*not a valid identifier.*")

tags_import.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ func tagImportParser(doc *Parser, start *Token, arguments *Parser) (INodeTag, *E
4343
// Compile the given template
4444
tpl, err := doc.template.set.FromFile(import_node.filename)
4545
if err != nil {
46-
return nil, arguments.Error(fmt.Sprintf("Could not compile '%s': %s", import_node.filename, err.Error()),
47-
filename_token)
46+
return nil, err.updateFromTokenIfNeeded(start)
4847
}
4948

5049
for arguments.Remaining() > 0 {

tags_include.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ func tagIncludeParser(doc *Parser, start *Token, arguments *Parser) (INodeTag, *
7373
include_node.filename = included_filename
7474
included_tpl, err := doc.template.set.FromFile(included_filename)
7575
if err != nil {
76-
return nil, err
76+
return nil, err.updateFromTokenIfNeeded(filename_token)
7777
}
7878
include_node.tpl = included_tpl
7979
} else {
8080
// No String, then the user wants to use lazy-evaluation (slower, but possible)
8181
filename_evaluator, err := arguments.ParseExpression()
8282
if err != nil {
83-
return nil, err
83+
return nil, err.updateFromTokenIfNeeded(filename_token)
8484
}
8585
include_node.filename_evaluator = filename_evaluator
8686
include_node.lazy = true
@@ -99,7 +99,7 @@ func tagIncludeParser(doc *Parser, start *Token, arguments *Parser) (INodeTag, *
9999
}
100100
value_expr, err := arguments.ParseExpression()
101101
if err != nil {
102-
return nil, err
102+
return nil, err.updateFromTokenIfNeeded(key_token)
103103
}
104104

105105
include_node.with_pairs[key_token.Val] = value_expr

tags_ssi.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ func tagSSIParser(doc *Parser, start *Token, arguments *Parser) (INodeTag, *Erro
3939
// parsed
4040
temporary_tpl, err := doc.template.set.FromFile(doc.template.set.resolveFilename(doc.template, file_token.Val))
4141
if err != nil {
42-
return nil, err
42+
return nil, err.updateFromTokenIfNeeded(file_token)
4343
}
4444
ssi_node.template = temporary_tpl
4545
} else {
4646
// plaintext
4747
buf, err := ioutil.ReadFile(doc.template.set.resolveFilename(doc.template, file_token.Val))
4848
if err != nil {
49-
return nil, &Error{
49+
return nil, (&Error{
5050
Sender: "tag:ssi",
5151
ErrorMsg: err.Error(),
52-
}
52+
}).updateFromTokenIfNeeded(file_token)
5353
}
5454
ssi_node.content = string(buf)
5555
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
.*Usage of filter 'banned_filter' is not allowed \(sandbox restriction active\).
22
.*Usage of tag 'banned_tag' is not allowed \(sandbox restriction active\).
3-
\[Error \(where: fromfile\)\] open : no such file or directory
3+
\[Error \(where: fromfile\) | Line 1 Col 12 near '../../test_not_existent'\] open : no such file or directory

0 commit comments

Comments
 (0)