63 def test_possible_views_none_rset(self): |
64 def test_possible_views_none_rset(self): |
64 req = self.request() |
65 req = self.request() |
65 self.assertListEqual(self.pviews(req, None), |
66 self.assertListEqual(self.pviews(req, None), |
66 [('changelog', wdoc.ChangeLogView), |
67 [('changelog', wdoc.ChangeLogView), |
67 ('debug', debug.DebugView), |
68 ('debug', debug.DebugView), |
68 ('epropertiesform', eproperties.EPropertiesForm), |
69 ('epropertiesform', cwproperties.EPropertiesForm), |
69 ('index', startup.IndexView), |
70 ('index', startup.IndexView), |
70 ('info', management.ProcessInformationView), |
71 ('info', management.ProcessInformationView), |
71 ('manage', startup.ManageView), |
72 ('manage', startup.ManageView), |
72 ('owl', owl.OWLView), |
73 ('owl', owl.OWLView), |
73 ('schema', startup.SchemaView), |
74 ('schema', startup.SchemaView), |
74 ('systemepropertiesform', eproperties.SystemEPropertiesForm)]) |
75 ('systemepropertiesform', cwproperties.SystemEPropertiesForm)]) |
75 |
76 |
76 def test_possible_views_noresult(self): |
77 def test_possible_views_noresult(self): |
77 rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999') |
78 rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999') |
78 self.assertListEqual(self.pviews(req, rset), |
79 self.assertListEqual(self.pviews(req, rset), |
79 []) |
80 []) |
80 |
81 |
81 def test_possible_views_one_egroup(self): |
82 def test_possible_views_one_egroup(self): |
82 rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') |
83 rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') |
83 self.assertListEqual(self.pviews(req, rset), |
84 self.assertListEqual(self.pviews(req, rset), |
84 [('csvexport', baseviews.CSVRsetView), |
85 [('csvexport', csvexport.CSVRsetView), |
85 ('ecsvexport', baseviews.CSVEntityView), |
86 ('ecsvexport', csvexport.CSVEntityView), |
86 ('editable-table', tableview.EditableTableView), |
87 ('editable-table', tableview.EditableTableView), |
87 ('filetree', treeview.FileTreeView), |
88 ('filetree', treeview.FileTreeView), |
88 ('list', baseviews.ListView), |
89 ('list', baseviews.ListView), |
89 ('oneline', baseviews.OneLineView), |
90 ('oneline', baseviews.OneLineView), |
90 ('owlabox', owl.OWLABOXView), |
91 ('owlabox', owl.OWLABOXView), |
91 ('primary', baseviews.PrimaryView), |
92 ('primary', primary.PrimaryView), |
92 ('rsetxml', baseviews.XMLRsetView), |
93 ('rsetxml', xmlrss.XMLRsetView), |
93 ('rss', baseviews.RssView), |
94 ('rss', xmlrss.RSSView), |
94 ('secondary', baseviews.SecondaryView), |
95 ('secondary', baseviews.SecondaryView), |
95 ('security', management.SecurityManagementView), |
96 ('security', management.SecurityManagementView), |
96 ('table', tableview.TableView), |
97 ('table', tableview.TableView), |
97 ('text', baseviews.TextView), |
98 ('text', baseviews.TextView), |
98 ('treeview', treeview.TreeView), |
99 ('treeview', treeview.TreeView), |
99 ('xbel', xbel.XbelView), |
100 ('xbel', xbel.XbelView), |
100 ('xml', baseviews.XmlView), |
101 ('xml', xmlrss.XMLView), |
101 ]) |
102 ]) |
102 |
103 |
103 def test_possible_views_multiple_egroups(self): |
104 def test_possible_views_multiple_egroups(self): |
104 rset, req = self.env.get_rset_and_req('CWGroup X') |
105 rset, req = self.env.get_rset_and_req('CWGroup X') |
105 self.assertListEqual(self.pviews(req, rset), |
106 self.assertListEqual(self.pviews(req, rset), |
106 [('csvexport', baseviews.CSVRsetView), |
107 [('csvexport', csvexport.CSVRsetView), |
107 ('ecsvexport', baseviews.CSVEntityView), |
108 ('ecsvexport', csvexport.CSVEntityView), |
108 ('editable-table', tableview.EditableTableView), |
109 ('editable-table', tableview.EditableTableView), |
109 ('filetree', treeview.FileTreeView), |
110 ('filetree', treeview.FileTreeView), |
110 ('list', baseviews.ListView), |
111 ('list', baseviews.ListView), |
111 ('oneline', baseviews.OneLineView), |
112 ('oneline', baseviews.OneLineView), |
112 ('owlabox', owl.OWLABOXView), |
113 ('owlabox', owl.OWLABOXView), |
113 ('primary', baseviews.PrimaryView), |
114 ('primary', primary.PrimaryView), |
114 ('rsetxml', baseviews.XMLRsetView), |
115 ('rsetxml', xmlrss.XMLRsetView), |
115 ('rss', baseviews.RssView), |
116 ('rss', xmlrss.RSSView), |
116 ('secondary', baseviews.SecondaryView), |
117 ('secondary', baseviews.SecondaryView), |
117 ('security', management.SecurityManagementView), |
118 ('security', management.SecurityManagementView), |
118 ('table', tableview.TableView), |
119 ('table', tableview.TableView), |
119 ('text', baseviews.TextView), |
120 ('text', baseviews.TextView), |
120 ('treeview', treeview.TreeView), |
121 ('treeview', treeview.TreeView), |
121 ('xbel', xbel.XbelView), |
122 ('xbel', xbel.XbelView), |
122 ('xml', baseviews.XmlView), |
123 ('xml', xmlrss.XMLView), |
123 ]) |
124 ]) |
124 |
125 |
125 def test_possible_views_multiple_different_types(self): |
126 def test_possible_views_multiple_different_types(self): |
126 rset, req = self.env.get_rset_and_req('Any X') |
127 rset, req = self.env.get_rset_and_req('Any X') |
127 self.assertListEqual(self.pviews(req, rset), |
128 self.assertListEqual(self.pviews(req, rset), |
128 [('csvexport', baseviews.CSVRsetView), |
129 [('csvexport', csvexport.CSVRsetView), |
129 ('ecsvexport', baseviews.CSVEntityView), |
130 ('ecsvexport', csvexport.CSVEntityView), |
130 ('editable-table', tableview.EditableTableView), |
131 ('editable-table', tableview.EditableTableView), |
131 ('filetree', treeview.FileTreeView), |
132 ('filetree', treeview.FileTreeView), |
132 ('list', baseviews.ListView), |
133 ('list', baseviews.ListView), |
133 ('oneline', baseviews.OneLineView), |
134 ('oneline', baseviews.OneLineView), |
134 ('owlabox', owl.OWLABOXView), |
135 ('owlabox', owl.OWLABOXView), |
135 ('primary', baseviews.PrimaryView), |
136 ('primary', primary.PrimaryView), |
136 ('rsetxml', baseviews.XMLRsetView), |
137 ('rsetxml', xmlrss.XMLRsetView), |
137 ('rss', baseviews.RssView), |
138 ('rss', xmlrss.RSSView), |
138 ('secondary', baseviews.SecondaryView), |
139 ('secondary', baseviews.SecondaryView), |
139 ('security', management.SecurityManagementView), |
140 ('security', management.SecurityManagementView), |
140 ('table', tableview.TableView), |
141 ('table', tableview.TableView), |
141 ('text', baseviews.TextView), |
142 ('text', baseviews.TextView), |
142 ('treeview', treeview.TreeView), |
143 ('treeview', treeview.TreeView), |
143 ('xbel', xbel.XbelView), |
144 ('xbel', xbel.XbelView), |
144 ('xml', baseviews.XmlView), |
145 ('xml', xmlrss.XMLView), |
145 ]) |
146 ]) |
146 |
147 |
147 def test_possible_views_any_rset(self): |
148 def test_possible_views_any_rset(self): |
148 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
149 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
149 self.assertListEqual(self.pviews(req, rset), |
150 self.assertListEqual(self.pviews(req, rset), |
150 [('csvexport', baseviews.CSVRsetView), |
151 [('csvexport', csvexport.CSVRsetView), |
151 ('editable-table', tableview.EditableTableView), |
152 ('editable-table', tableview.EditableTableView), |
152 ('rsetxml', baseviews.XMLRsetView), |
153 ('rsetxml', xmlrss.XMLRsetView), |
153 ('table', tableview.TableView), |
154 ('table', tableview.TableView), |
154 ]) |
155 ]) |
155 |
156 |
156 def test_possible_views_multiple_eusers(self): |
157 def test_possible_views_multiple_eusers(self): |
157 rset, req = self.env.get_rset_and_req('CWUser X') |
158 rset, req = self.env.get_rset_and_req('CWUser X') |
158 self.assertListEqual(self.pviews(req, rset), |
159 self.assertListEqual(self.pviews(req, rset), |
159 [('csvexport', baseviews.CSVRsetView), |
160 [('csvexport', csvexport.CSVRsetView), |
160 ('ecsvexport', baseviews.CSVEntityView), |
161 ('ecsvexport', csvexport.CSVEntityView), |
161 ('editable-table', tableview.EditableTableView), |
162 ('editable-table', tableview.EditableTableView), |
162 ('filetree', treeview.FileTreeView), |
163 ('filetree', treeview.FileTreeView), |
163 ('foaf', euser.FoafView), |
164 ('foaf', cwuser.FoafView), |
164 ('list', baseviews.ListView), |
165 ('list', baseviews.ListView), |
165 ('oneline', baseviews.OneLineView), |
166 ('oneline', baseviews.OneLineView), |
166 ('owlabox', owl.OWLABOXView), |
167 ('owlabox', owl.OWLABOXView), |
167 ('primary', euser.CWUserPrimaryView), |
168 ('primary', cwuser.CWUserPrimaryView), |
168 ('rsetxml', baseviews.XMLRsetView), |
169 ('rsetxml', xmlrss.XMLRsetView), |
169 ('rss', baseviews.RssView), |
170 ('rss', xmlrss.RSSView), |
170 ('secondary', baseviews.SecondaryView), |
171 ('secondary', baseviews.SecondaryView), |
171 ('security', management.SecurityManagementView), |
172 ('security', management.SecurityManagementView), |
172 ('table', tableview.TableView), |
173 ('table', tableview.TableView), |
173 ('text', baseviews.TextView), |
174 ('text', baseviews.TextView), |
174 ('treeview', treeview.TreeView), |
175 ('treeview', treeview.TreeView), |
175 ('vcard', vcard.VCardCWUserView), |
176 ('vcard', vcard.VCardCWUserView), |
176 ('xbel', xbel.XbelView), |
177 ('xbel', xbel.XbelView), |
177 ('xml', baseviews.XmlView), |
178 ('xml', xmlrss.XMLView), |
178 ]) |
179 ]) |
179 |
180 |
180 def test_possible_actions_none_rset(self): |
181 def test_possible_actions_none_rset(self): |
181 req = self.request() |
182 req = self.request() |
182 self.assertDictEqual(self.pactions(req, None), |
183 self.assertDictEqual(self.pactions(req, None), |
213 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
214 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
214 self.assertDictEqual(self.pactions(req, rset), |
215 self.assertDictEqual(self.pactions(req, rset), |
215 {'useractions': USERACTIONS, |
216 {'useractions': USERACTIONS, |
216 'siteactions': SITEACTIONS}) |
217 'siteactions': SITEACTIONS}) |
217 |
218 |
218 def test_possible_actions_eetype_euser_entity(self): |
219 def test_possible_actions_eetype_cwuser_entity(self): |
219 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"') |
220 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"') |
220 self.assertDictEqual(self.pactions(req, rset), |
221 self.assertDictEqual(self.pactions(req, rset), |
221 {'useractions': USERACTIONS, |
222 {'useractions': USERACTIONS, |
222 'siteactions': SITEACTIONS, |
223 'siteactions': SITEACTIONS, |
223 'mainactions': [('edit', actions.ModifyAction), |
224 'mainactions': [('edit', actions.ModifyAction), |
224 ('workflow', schemaentities.ViewWorkflowAction),], |
225 ('workflow', workflow.ViewWorkflowAction),], |
225 'moreactions': [('delete', actions.DeleteAction), |
226 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
|
227 ('delete', actions.DeleteAction), |
226 ('copy', actions.CopyAction), |
228 ('copy', actions.CopyAction), |
227 ('managepermission', actions.ManagePermissionsAction)], |
229 ], |
228 }) |
230 }) |
229 |
231 |
230 |
232 |
231 def test_select_creation_form(self): |
233 def test_select_creation_form(self): |
232 rset = None |
234 rset = None |
233 req = self.request() |
235 req = self.request() |
234 # creation form |
236 # creation form |
235 req.form['etype'] = 'CWGroup' |
237 req.form['etype'] = 'CWGroup' |
236 self.assertIsInstance(self.vreg.select_view('creation', req, rset), |
238 self.assertIsInstance(self.vreg.select_view('creation', req, rset), |
237 baseforms.CreationForm) |
239 editforms.CreationFormView) |
238 del req.form['etype'] |
240 del req.form['etype'] |
239 # custom creation form |
241 # custom creation form |
240 class CWUserCreationForm(baseforms.CreationForm): |
242 class CWUserCreationForm(editforms.CreationFormView): |
241 __select__ = specified_etype_implements('CWUser') |
243 __select__ = specified_etype_implements('CWUser') |
|
244 self.vreg._loadedmods[__name__] = {} |
242 self.vreg.register_vobject_class(CWUserCreationForm) |
245 self.vreg.register_vobject_class(CWUserCreationForm) |
243 req.form['etype'] = 'CWUser' |
246 req.form['etype'] = 'CWUser' |
244 self.assertIsInstance(self.vreg.select_view('creation', req, rset), |
247 self.assertIsInstance(self.vreg.select_view('creation', req, rset), |
245 CWUserCreationForm) |
248 CWUserCreationForm) |
246 |
249 |
266 self.failUnlessRaises(NoSelectableObject, |
269 self.failUnlessRaises(NoSelectableObject, |
267 self.vreg.select_view, 'table', req, rset) |
270 self.vreg.select_view, 'table', req, rset) |
268 # one entity |
271 # one entity |
269 rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') |
272 rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') |
270 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
273 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
271 baseviews.PrimaryView) |
274 primary.PrimaryView) |
272 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
275 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
273 baseviews.ListView) |
276 baseviews.ListView) |
274 self.assertIsInstance(self.vreg.select_view('edition', req, rset), |
277 self.assertIsInstance(self.vreg.select_view('edition', req, rset), |
275 baseforms.EditionForm) |
278 editforms.EditionFormView) |
276 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
279 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
277 tableview.TableView) |
280 tableview.TableView) |
278 self.failUnlessRaises(NoSelectableObject, |
281 self.failUnlessRaises(NoSelectableObject, |
279 self.vreg.select_view, 'creation', req, rset) |
282 self.vreg.select_view, 'creation', req, rset) |
280 self.failUnlessRaises(NoSelectableObject, |
283 self.failUnlessRaises(NoSelectableObject, |
281 self.vreg.select_view, 'index', req, rset) |
284 self.vreg.select_view, 'index', req, rset) |
282 # list of entities of the same type |
285 # list of entities of the same type |
283 rset, req = self.env.get_rset_and_req('CWGroup X') |
286 rset, req = self.env.get_rset_and_req('CWGroup X') |
284 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
287 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
285 baseviews.PrimaryView) |
288 primary.PrimaryView) |
286 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
289 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
287 baseviews.ListView) |
290 baseviews.ListView) |
288 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
291 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
289 tableview.TableView) |
292 tableview.TableView) |
290 self.failUnlessRaises(NoSelectableObject, |
293 self.failUnlessRaises(NoSelectableObject, |
291 self.vreg.select_view, 'creation', req, rset) |
294 self.vreg.select_view, 'creation', req, rset) |
292 # list of entities of different types |
295 # list of entities of different types |
293 rset, req = self.env.get_rset_and_req('Any X') |
296 rset, req = self.env.get_rset_and_req('Any X') |
294 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
297 self.assertIsInstance(self.vreg.select_view('primary', req, rset), |
295 baseviews.PrimaryView) |
298 primary.PrimaryView) |
296 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
299 self.assertIsInstance(self.vreg.select_view('list', req, rset), |
297 baseviews.ListView) |
300 baseviews.ListView) |
298 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
301 self.assertIsInstance(self.vreg.select_view('table', req, rset), |
299 tableview.TableView) |
302 tableview.TableView) |
300 self.failUnlessRaises(NoSelectableObject, |
303 self.failUnlessRaises(NoSelectableObject, |