web/test/unittest_viewselector.py
branchstable
changeset 2401 890f6b990dd7
parent 1977 606923dff11b
child 2403 74f7fa676a52
child 2404 2d3c1a3f76c5
equal deleted inserted replaced
2398:a8d18e320ef3 2401:890f6b990dd7
     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),