test/unittest_selectors.py
changeset 2657 de974465d381
parent 1977 606923dff11b
child 2773 b2530e3e0afb
child 4212 ab6573088b4a
equal deleted inserted replaced
2656:a93ae0f6c0ad 2657:de974465d381
     7 """
     7 """
     8 
     8 
     9 from logilab.common.testlib import TestCase, unittest_main
     9 from logilab.common.testlib import TestCase, unittest_main
    10 
    10 
    11 from cubicweb.devtools.testlib import EnvBasedTC
    11 from cubicweb.devtools.testlib import EnvBasedTC
    12 from cubicweb.vregistry import Selector, AndSelector, OrSelector
    12 from cubicweb.appobject import Selector, AndSelector, OrSelector
    13 from cubicweb.selectors import implements, match_user_groups
    13 from cubicweb.selectors import implements, match_user_groups
    14 from cubicweb.interfaces import IDownloadable
    14 from cubicweb.interfaces import IDownloadable
    15 from cubicweb.web import action
    15 from cubicweb.web import action
    16 
    16 
    17 class _1_(Selector):
    17 class _1_(Selector):
    89 
    89 
    90 
    90 
    91 class ImplementsSelectorTC(EnvBasedTC):
    91 class ImplementsSelectorTC(EnvBasedTC):
    92     def test_etype_priority(self):
    92     def test_etype_priority(self):
    93         req = self.request()
    93         req = self.request()
    94         cls = self.vreg.etype_class('File')
    94         cls = self.vreg['etypes'].etype_class('File')
    95         anyscore = implements('Any').score_class(cls, req)
    95         anyscore = implements('Any').score_class(cls, req)
    96         idownscore = implements(IDownloadable).score_class(cls, req)
    96         idownscore = implements(IDownloadable).score_class(cls, req)
    97         self.failUnless(idownscore > anyscore, (idownscore, anyscore))
    97         self.failUnless(idownscore > anyscore, (idownscore, anyscore))
    98         filescore = implements('File').score_class(cls, req)
    98         filescore = implements('File').score_class(cls, req)
    99         self.failUnless(filescore > idownscore, (filescore, idownscore))
    99         self.failUnless(filescore > idownscore, (filescore, idownscore))
   100 
   100 
   101     def test_etype_inheritance_no_yams_inheritance(self):
   101     def test_etype_inheritance_no_yams_inheritance(self):
   102         cls = self.vreg.etype_class('Personne')
   102         cls = self.vreg['etypes'].etype_class('Personne')
   103         self.failIf(implements('Societe').score_class(cls, self.request()))
   103         self.failIf(implements('Societe').score_class(cls, self.request()))
   104 
   104 
   105 
   105 
   106 class MatchUserGroupsTC(EnvBasedTC):
   106 class MatchUserGroupsTC(EnvBasedTC):
   107     def test_owners_group(self):
   107     def test_owners_group(self):
   109         class SomeAction(action.Action):
   109         class SomeAction(action.Action):
   110             id = 'yo'
   110             id = 'yo'
   111             category = 'foo'
   111             category = 'foo'
   112             __select__ = match_user_groups('owners')
   112             __select__ = match_user_groups('owners')
   113         self.vreg._loadedmods[__name__] = {}
   113         self.vreg._loadedmods[__name__] = {}
   114         self.vreg.register_vobject_class(SomeAction)
   114         self.vreg.register_appobject_class(SomeAction)
   115         self.failUnless(SomeAction in self.vreg['actions']['yo'], self.vreg['actions'])
   115         self.failUnless(SomeAction in self.vreg['actions']['yo'], self.vreg['actions'])
   116         try:
   116         try:
   117             # login as a simple user
   117             # login as a simple user
   118             self.create_user('john')
   118             self.create_user('john')
   119             self.login('john')
   119             self.login('john')