1
1
#!/usr/local/bin/python
3
import unittest, glob, sys, os.path
2
import glob, sys, os.path
6
class uBasic(unittest.TestCase):
6
class uBasic(libpry.AutoTree):
7
7
def test_simple(self):
9
ct = cubictemp.Temp(test)
10
self.failUnless(repr(ct) == "1")
9
ct = cubictemp.Template(test)
12
12
def test_simple2(self):
15
ct = cubictemp.Temp(test, **ns)
16
self.failUnless(repr(ct) == "1")
19
class TemplateTester(unittest.TestCase):
20
def _run(self, filename):
23
execfile(filename + ".py", {}, nsDict)
24
nsDict = nsDict["mdict"]
27
return repr(cubictemp.File(filename + ".test", **nsDict))
15
ct = cubictemp.Template(test, **ns)
19
class TemplateTester(libpry.AutoTree):
20
def _runTemp(self, filename, nsDict):
21
return str(cubictemp.File(filename + ".test", **nsDict))
30
24
class uTemplate(TemplateTester):
32
def _run(self, filename):
26
def _runTemp(self, filename, nsDict={}):
33
27
filename = os.path.join(self.PREFIX, filename)
34
mtemp = TemplateTester._run(self, filename)
28
mtemp = TemplateTester._runTemp(self, filename, nsDict)
35
29
out = open(filename + ".out", "r").read().split()
37
30
mout = mtemp.split()
38
31
if not mout == out:
39
32
print "Expected output:"
47
40
self.fail("Actual output does not match expected output")
52
45
def test_block(self):
49
self._runTemp("block", ns)
55
51
def test_commonuse(self):
56
self._run("commonuse")
53
"foo": open("ptests/commonuse.data")
55
self._runTemp("commonuse", ns)
58
57
def test_nested(self):
58
self._runTemp("nested")
64
60
def test_repeat(self):
61
self._runTemp("repeat")
67
63
def test_simple(self):
68
"mdict": {"entry": "foo"}
70
self._runTemp("simple", ns)
71
73
class uErrors(TemplateTester):
73
def _run(self, filename):
75
def _runTemp(self, filename, err):
74
76
filename = os.path.join(self.PREFIX, filename)
76
TemplateTester._run(self, filename)
77
except cubictemp.tempException, value:
80
self.fail("No exception on test case %s.\n" % (filename))
77
libpry.raises(err, TemplateTester._runTemp, self, filename, {})
82
79
def test_blockLine(self):
83
self._run("blockLine")
80
self._runTemp("blockLine", "'a' is not defined")
85
82
def test_ifundefined(self):
86
self._run("ifundefined")
83
self._runTemp("ifundefined", "'a' is not defined")
88
85
def test_loopsyntax(self):
89
self._run("loopsyntax")
86
self._runTemp("loopsyntax", "invalid expression")
91
88
def test_loopundefined(self):
92
self._run("loopundefined")
89
self._runTemp("loopundefined", "'a' is not defined")
94
91
def test_noniterable(self):
95
self._run("noniterable")
92
self._runTemp("noniterable", "can not iterate")
97
94
def test_syntax(self):
95
self._runTemp("syntax", "invalid expression")
100
97
def test_undefined(self):
101
self._run("undefined")
98
self._runTemp("undefined", "'foo' is not defined")
104
101
class uQuoting(TemplateTester):
105
102
PREFIX = "qtests"
106
def _run(self, filename):
103
def _runTemp(self, filename, nsDict={}):
107
104
filename = os.path.join(self.PREFIX, filename)
108
output = TemplateTester._run(self, filename)
105
output = TemplateTester._runTemp(self, filename, nsDict)
109
106
if (output.find("<") >= 0): self.fail()
110
107
if (output.find(">") >= 0): self.fail()
112
109
def test_commonuse(self):
113
self._run("commonuse")
118
self._runTemp("commonuse", mdict)
116
121
class uNonQuoting(TemplateTester):
117
122
PREFIX = "nqtests"
118
def _run(self, filename):
123
def _runTemp(self, filename, nsDict):
119
124
filename = os.path.join(self.PREFIX, filename)
120
output = TemplateTester._run(self, filename)
125
output = TemplateTester._runTemp(self, filename, nsDict)
121
126
if (output.find("<") < 0): self.fail()
122
127
if (output.find(">") < 0): self.fail()
124
129
def test_commonuse(self):
131
_cubictemp_unescaped = 1
138
self._runTemp("object", mdict)
127
140
def test_tag(self):
144
self._runTemp("tag", mdict)