Mercurial > p > roundup > code
annotate test/test_templating.py @ 2600:f25ff5a05abd
anydbm fixes:
- Remove duplicate call to indexer
- Remove defaulting of props to None unnecessarily -- masks get() with
default values.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Tue, 20 Jul 2004 07:26:40 +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 |
