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): |