Mercurial > p > roundup > code
annotate test/test_templating.py @ 2467:76ead526113d
client instances may be used as translation engines.
any backend translator may be passed as constructor
argument or via setTranslator() method. by default,
templating.translationService is used.
use this engine to translate client messages.
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Tue, 15 Jun 2004 09:19:49 +0000 |
| parents | a0cfea4e5956 |
| children | 305d346f8f3b |
| rev | line source |
|---|---|
|
2158
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 import unittest |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 from cgi import FieldStorage, MiniFieldStorage |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 from roundup.cgi.templating import * |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 from test_actions import MockNull, true |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 class MockDatabase(MockNull): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 def getclass(self, name): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 return self.classes[name] |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 class TemplatingTestCase(unittest.TestCase): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 def setUp(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 self.form = FieldStorage() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 self.client = MockNull() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 self.client.db = MockDatabase() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 self.client.form = self.form |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 class HTMLDatabaseTestCase(TemplatingTestCase): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 def test_HTMLDatabase___getitem__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 db = HTMLDatabase(self.client) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 self.assert_(isinstance(db['issue'], HTMLClass)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 self.assert_(isinstance(db['user'], HTMLUserClass)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 self.assert_(isinstance(db['issue1'], HTMLItem)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 self.assert_(isinstance(db['user1'], HTMLUser)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 def test_HTMLDatabase___getattr__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 db = HTMLDatabase(self.client) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 self.assert_(isinstance(db.issue, HTMLClass)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 self.assert_(isinstance(db.user, HTMLUserClass)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 self.assert_(isinstance(db.issue1, HTMLItem)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 self.assert_(isinstance(db.user1, HTMLUser)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
32 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 def test_HTMLDatabase_classes(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 db = HTMLDatabase(self.client) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 db._db.classes = {'issue':MockNull(), 'user': MockNull()} |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 db.classes() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 class FunctionsTestCase(TemplatingTestCase): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 def test_lookupIds(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 db = HTMLDatabase(self.client) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 def lookup(key): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 if key == 'ok': |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 return '1' |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 if key == 'fail': |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 raise KeyError, 'fail' |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 db._db.classes = {'issue': MockNull(lookup=lookup)} |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 prop = MockNull(classname='issue') |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 self.assertEqual(lookupIds(db._db, prop, ['1','2']), ['1','2']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 self.assertEqual(lookupIds(db._db, prop, ['ok','2']), ['1','2']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 self.assertEqual(lookupIds(db._db, prop, ['ok', 'fail'], 1), |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 ['1', 'fail']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 self.assertEqual(lookupIds(db._db, prop, ['ok', 'fail']), ['1']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 def test_lookupKeys(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 db = HTMLDatabase(self.client) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 def get(entry, key): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 return {'1': 'green', '2': 'eggs'}.get(entry, entry) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 shrubbery = MockNull(get=get) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 db._db.classes = {'shrubbery': shrubbery} |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 self.assertEqual(lookupKeys(shrubbery, 'spam', ['1','2']), |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 ['green', 'eggs']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 self.assertEqual(lookupKeys(shrubbery, 'spam', ['ok','2']), ['ok', |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 'eggs']) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 ''' |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 class HTMLPermissions: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 def is_edit_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
68 def is_view_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 def is_only_view_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 def view_check(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 def edit_check(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 def input_html4(**attrs): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 def input_xhtml(**attrs): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 class HTMLInputMixin: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 def __init__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 class HTMLClass(HTMLInputMixin, HTMLPermissions): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
80 def __init__(self, client, classname, anonymous=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 def __repr__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
82 def __getitem__(self, item): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
83 def __getattr__(self, attr): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 def designator(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
85 def getItem(self, itemid, num_re=re.compile('-?\d+')): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 def properties(self, sort=1): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 def list(self, sort_on=None): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 def csv(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 def propnames(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 def filter(self, request=None, filterspec={}, sort=(None,None), |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 def classhelp(self, properties=None, label='(list)', width='500', |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 def submit(self, label="Submit New Entry"): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 def history(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 def renderWith(self, name, **kwargs): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 class HTMLItem(HTMLInputMixin, HTMLPermissions): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 def __init__(self, client, classname, nodeid, anonymous=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
98 def __repr__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 def __getitem__(self, item): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 def __getattr__(self, attr): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
101 def designator(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 def is_retired(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 def submit(self, label="Submit Changes"): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 def journal(self, direction='descending'): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 def history(self, direction='descending', dre=re.compile('\d+')): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 def renderQueryForm(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
107 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 class HTMLUserPermission: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 def is_edit_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
110 def is_view_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
111 def _user_perm_check(self, type): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 class HTMLUserClass(HTMLUserPermission, HTMLClass): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 class HTMLUser(HTMLUserPermission, HTMLItem): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 def __init__(self, client, classname, nodeid, anonymous=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 def hasPermission(self, permission, classname=_marker): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
118 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 class HTMLProperty(HTMLInputMixin, HTMLPermissions): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
120 def __init__(self, client, classname, nodeid, prop, name, value, |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
121 def __repr__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
122 def __str__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
123 def __cmp__(self, other): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
124 def is_edit_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
125 def is_view_ok(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
126 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
127 class StringHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
128 def _hyper_repl(self, match): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 def hyperlinked(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 def plain(self, escape=0, hyperlink=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
131 def stext(self, escape=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
132 def field(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
133 def multiline(self, escape=0, rows=5, cols=40): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 def email(self, escape=1): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
136 class PasswordHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
137 def plain(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 def field(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 def confirm(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
140 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
141 class NumberHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
142 def plain(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
143 def field(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 def __int__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
145 def __float__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
146 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
147 class BooleanHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
148 def plain(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
149 def field(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
150 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
151 class DateHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
152 def plain(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
153 def now(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
154 def field(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
155 def reldate(self, pretty=1): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
156 def pretty(self, format=_marker): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
157 def local(self, offset): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
158 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
159 class IntervalHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
160 def plain(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
161 def pretty(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
162 def field(self, size = 30): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
163 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
164 class LinkHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
165 def __init__(self, *args, **kw): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
166 def __getattr__(self, attr): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
167 def plain(self, escape=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
168 def field(self, showid=0, size=None): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
169 def menu(self, size=None, height=None, showid=0, additional=[], |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
170 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
171 class MultilinkHTMLProperty(HTMLProperty): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
172 def __init__(self, *args, **kwargs): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
173 def __len__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
174 def __getattr__(self, attr): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
175 def __getitem__(self, num): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
176 def __contains__(self, value): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
177 def reverse(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
178 def plain(self, escape=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
179 def field(self, size=30, showid=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
180 def menu(self, size=None, height=None, showid=0, additional=[], |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
181 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
182 def make_sort_function(db, classname, sort_on=None): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
183 def sortfunc(a, b): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
184 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
185 def find_sort_key(linkcl): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
186 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
187 def handleListCGIValue(value): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
188 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
189 class ShowDict: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
190 def __init__(self, columns): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
191 def __getitem__(self, name): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
192 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
193 class HTMLRequest(HTMLInputMixin): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
194 def __init__(self, client): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
195 def _post_init(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
196 def updateFromURL(self, url): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
197 def update(self, kwargs): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
198 def description(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
199 def __str__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
200 def indexargs_form(self, columns=1, sort=1, group=1, filter=1, |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
201 def indexargs_url(self, url, args): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
202 def base_javascript(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
203 def batch(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
204 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
205 class Batch(ZTUtils.Batch): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
206 def __init__(self, client, sequence, size, start, end=0, orphan=0, |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
207 def __getitem__(self, index): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
208 def propchanged(self, property): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
209 def previous(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
210 def next(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
211 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
212 class TemplatingUtils: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
213 def __init__(self, client): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
214 def Batch(self, sequence, size, start, end=0, orphan=0, overlap=0): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
215 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
216 class NoTemplate(Exception): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
217 class Unauthorised(Exception): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
218 def __init__(self, action, klass): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
219 def __str__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
220 def find_template(dir, name, extension): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
221 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
222 class Templates: |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
223 def __init__(self, dir): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
224 def precompileTemplates(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
225 def get(self, name, extension=None): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
226 def __getitem__(self, name): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
227 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
228 class RoundupPageTemplate(PageTemplate.PageTemplate): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
229 def getContext(self, client, classname, request): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
230 def render(self, client, classname, request, **options): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
231 def __repr__(self): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
232 ''' |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
233 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
234 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
235 def test_suite(): |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
236 suite = unittest.TestSuite() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
237 suite.addTest(unittest.makeSuite(HTMLDatabaseTestCase)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
238 suite.addTest(unittest.makeSuite(FunctionsTestCase)) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
239 return suite |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
240 |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
241 if __name__ == '__main__': |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
242 runner = unittest.TextTestRunner() |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
243 unittest.main(testRunner=runner) |
|
a0cfea4e5956
start at templating tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
244 |
