3
from mako.pygen import PythonPrinter, adjust_whitespace
4
from StringIO import StringIO
6
class GeneratePythonTest(unittest.TestCase):
7
def test_generate_normal(self):
9
printer = PythonPrinter(stream)
10
printer.writeline("import lala")
11
printer.writeline("for x in foo:")
12
printer.writeline("print x")
13
printer.writeline(None)
14
printer.writeline("print y")
15
assert stream.getvalue() == \
21
def test_generate_adjusted(self):
26
print "<td>%s</td>" % y
29
printer = PythonPrinter(stream)
30
printer.write_indented_block(block)
32
#print stream.getvalue()
33
assert stream.getvalue() == \
38
print "<td>%s</td>" % y
41
def test_generate_combo(self):
47
print "<td>%s</td>" % y
53
printer = PythonPrinter(stream)
54
printer.writeline("import lala")
55
printer.writeline("for x in foo:")
56
printer.writeline("print x")
57
printer.write_indented_block(block)
58
printer.writeline(None)
59
printer.writeline("print y")
61
#print "->" + stream.getvalue().replace(' ', '#') + "<-"
62
assert stream.getvalue() == \
70
print "<td>%s</td>" % y
77
def test_multi_line(self):
81
print ''' this is a block of stuff.
82
this is more stuff in the block.
88
printer = PythonPrinter(stream)
89
printer.write_indented_block(block)
91
#print stream.getvalue()
92
assert stream.getvalue() == \
95
print ''' this is a block of stuff.
96
this is more stuff in the block.
103
def test_backslash_line(self):
108
if (lala + hoho) + \\
109
(foobar + blat) == 5:
114
printer = PythonPrinter(stream)
115
printer.write_indented_block(block)
117
assert stream.getvalue() == \
121
if (lala + hoho) + \\
122
(foobar + blat) == 5:
128
class WhitespaceTest(unittest.TestCase):
129
def test_basic(self):
131
for x in range(0,15):
135
assert adjust_whitespace(text) == \
137
for x in range(0,15):
143
def test_quotes(self):
145
print ''' aslkjfnas kjdfn
146
askdjfnaskfd fkasnf dknf sadkfjn asdkfjna sdakjn
147
asdkfjnads kfajns '''
151
assert adjust_whitespace(text) == \
153
print ''' aslkjfnas kjdfn
154
askdjfnaskfd fkasnf dknf sadkfjn asdkfjna sdakjn
155
asdkfjnads kfajns '''
161
if __name__ == '__main__':