entities/test/unittest_base.py
changeset 3230 1d25e928c299
parent 3163 edfe43ceaa35
parent 3206 5a51ac97f1d3
child 3369 7b88d12b4ee2
equal deleted inserted replaced
3199:fc63b80ec979 3230:1d25e928c299
    56         self.assertEquals(e.dc_title(), 'member')
    56         self.assertEquals(e.dc_title(), 'member')
    57         self.assertEquals(e.name(), u'bouah lôt')
    57         self.assertEquals(e.name(), u'bouah lôt')
    58 
    58 
    59 class EmailAddressTC(BaseEntityTC):
    59 class EmailAddressTC(BaseEntityTC):
    60     def test_canonical_form(self):
    60     def test_canonical_form(self):
    61         eid1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
    61         email1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
    62         eid2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com", X canonical TRUE')[0][0]
    62         email2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com"').get_entity(0, 0)
    63         self.execute('SET X identical_to Y WHERE X eid %s, Y eid %s' % (eid1, eid2))
    63         email3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"').get_entity(0, 0)
    64         email1 = self.entity('Any X WHERE X eid %(x)s', {'x':eid1}, 'x')
    64         self.execute('SET X prefered_form Y WHERE X eid %s, Y eid %s' % (email1.eid, email2.eid))
    65         email2 = self.entity('Any X WHERE X eid %(x)s', {'x':eid2}, 'x')
    65         self.assertEquals(email1.prefered.eid, email2.eid)
    66         self.assertEquals(email1.canonical_form().eid, eid2)
    66         self.assertEquals(email2.prefered.eid, email2.eid)
    67         self.assertEquals(email2.canonical_form(), email2)
    67         self.assertEquals(email3.prefered.eid, email3.eid)
    68         eid3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"')[0][0]
       
    69         email3 = self.entity('Any X WHERE X eid %s'%eid3)
       
    70         self.assertEquals(email3.canonical_form(), None)
       
    71 
    68 
    72     def test_mangling(self):
    69     def test_mangling(self):
    73         eid = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
    70         eid = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
    74         email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
    71         email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
    75         self.assertEquals(email.display_address(), 'maarten.ter.huurne@philips.com')
    72         self.assertEquals(email.display_address(), 'maarten.ter.huurne@philips.com')
   106             __implements__ = (IMileStone,)
   103             __implements__ = (IMileStone,)
   107         self.vreg._loadedmods[__name__] = {}
   104         self.vreg._loadedmods[__name__] = {}
   108         self.vreg.register_appobject_class(MyUser)
   105         self.vreg.register_appobject_class(MyUser)
   109         self.vreg['etypes'].initialization_completed()
   106         self.vreg['etypes'].initialization_completed()
   110         MyUser_ = self.vreg['etypes'].etype_class('CWUser')
   107         MyUser_ = self.vreg['etypes'].etype_class('CWUser')
   111         self.failIf(MyUser is MyUser_.__bases__)
   108         # a copy is done systematically
   112         self.failUnless(MyUser in MyUser_.__bases__)
   109         self.failUnless(issubclass(MyUser_, MyUser))
   113         self.failUnless(implements(MyUser_, IMileStone))
   110         self.failUnless(implements(MyUser_, IMileStone))
   114         self.failUnless(implements(MyUser_, IWorkflowable))
   111         self.failUnless(implements(MyUser_, IWorkflowable))
       
   112         # original class should not have beed modified, only the copy
       
   113         self.failUnless(implements(MyUser, IMileStone))
       
   114         self.failIf(implements(MyUser, IWorkflowable))
   115 
   115 
   116 
   116 
   117 class SpecializedEntityClassesTC(CubicWebTC):
   117 class SpecializedEntityClassesTC(CubicWebTC):
   118 
   118 
   119     def select_eclass(self, etype):
   119     def select_eclass(self, etype):