1 # -*- coding: iso-8859-1 -*- |
1 # -*- coding: utf-8 -*- |
2 """XXX rename, split, reorganize this |
2 """XXX rename, split, reorganize this |
3 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
3 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
4 """ |
4 """ |
|
5 from __future__ import with_statement |
|
6 |
5 from logilab.common.testlib import unittest_main |
7 from logilab.common.testlib import unittest_main |
6 |
8 |
7 from cubicweb.devtools.apptest import EnvBasedTC |
9 from cubicweb.devtools.apptest import EnvBasedTC |
8 from cubicweb import CW_SOFTWARE_ROOT as BASE, Binary |
10 from cubicweb import CW_SOFTWARE_ROOT as BASE, Binary |
9 from cubicweb.selectors import (match_user_groups, implements, |
11 from cubicweb.selectors import (match_user_groups, implements, |
119 ('text', baseviews.TextView), |
121 ('text', baseviews.TextView), |
120 ('treeview', treeview.TreeView), |
122 ('treeview', treeview.TreeView), |
121 ('xbel', xbel.XbelView), |
123 ('xbel', xbel.XbelView), |
122 ('xml', xmlrss.XMLView), |
124 ('xml', xmlrss.XMLView), |
123 ]) |
125 ]) |
|
126 |
|
127 def test_propertiesform_admin(self): |
|
128 rset1, req1 = self.env.get_rset_and_req('CWUser X WHERE X login "admin"') |
|
129 rset2, req2 = self.env.get_rset_and_req('CWUser X WHERE X login "anon"') |
|
130 with traced_selection(): |
|
131 self.failUnless(self.vreg.select_object('views', 'propertiesform', req1, rset=None)) |
|
132 self.failUnless(self.vreg.select_object('views', 'propertiesform', req1, rset=rset1)) |
|
133 self.failUnless(self.vreg.select_object('views', 'propertiesform', req2, rset=rset2)) |
|
134 |
|
135 def test_propertiesform_anon(self): |
|
136 self.login('anon') |
|
137 rset1, req1 = self.env.get_rset_and_req('CWUser X WHERE X login "admin"') |
|
138 rset2, req2 = self.env.get_rset_and_req('CWUser X WHERE X login "anon"') |
|
139 with traced_selection(): |
|
140 self.assertRaises(NoSelectableObject, self.vreg.select_object, 'views', 'propertiesform', req1, rset=None) |
|
141 self.assertRaises(NoSelectableObject, self.vreg.select_object, 'views', 'propertiesform', req1, rset=rset1) |
|
142 self.assertRaises(NoSelectableObject, self.vreg.select_object, 'views', 'propertiesform', req1, rset=rset2) |
|
143 |
|
144 def test_propertiesform_jdoe(self): |
|
145 self.create_user('jdoe') |
|
146 self.login('jdoe') |
|
147 rset1, req1 = self.env.get_rset_and_req('CWUser X WHERE X login "admin"') |
|
148 rset2, req2 = self.env.get_rset_and_req('CWUser X WHERE X login "jdoe"') |
|
149 with traced_selection(): |
|
150 self.failUnless(self.vreg.select_object('views', 'propertiesform', req1, rset=None)) |
|
151 self.assertRaises(NoSelectableObject, self.vreg.select_object, 'views', 'propertiesform', req1, rset=rset1) |
|
152 self.failUnless(self.vreg.select_object('views', 'propertiesform', req2, rset=rset2)) |
124 |
153 |
125 def test_possible_views_multiple_different_types(self): |
154 def test_possible_views_multiple_different_types(self): |
126 rset, req = self.env.get_rset_and_req('Any X') |
155 rset, req = self.env.get_rset_and_req('Any X') |
127 self.assertListEqual(self.pviews(req, rset), |
156 self.assertListEqual(self.pviews(req, rset), |
128 [('csvexport', csvexport.CSVRsetView), |
157 [('csvexport', csvexport.CSVRsetView), |