--- a/entities/test/unittest_base.py Mon Sep 14 11:25:56 2009 +0200
+++ b/entities/test/unittest_base.py Tue Sep 15 15:01:41 2009 +0200
@@ -58,16 +58,13 @@
class EmailAddressTC(BaseEntityTC):
def test_canonical_form(self):
- eid1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
- eid2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com", X canonical TRUE')[0][0]
- self.execute('SET X identical_to Y WHERE X eid %s, Y eid %s' % (eid1, eid2))
- email1 = self.entity('Any X WHERE X eid %(x)s', {'x':eid1}, 'x')
- email2 = self.entity('Any X WHERE X eid %(x)s', {'x':eid2}, 'x')
- self.assertEquals(email1.canonical_form().eid, eid2)
- self.assertEquals(email2.canonical_form(), email2)
- eid3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"')[0][0]
- email3 = self.entity('Any X WHERE X eid %s'%eid3)
- self.assertEquals(email3.canonical_form(), None)
+ email1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
+ email2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com"').get_entity(0, 0)
+ email3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"').get_entity(0, 0)
+ self.execute('SET X prefered_form Y WHERE X eid %s, Y eid %s' % (email1.eid, email2.eid))
+ self.assertEquals(email1.prefered.eid, email2.eid)
+ self.assertEquals(email2.prefered.eid, email2.eid)
+ self.assertEquals(email3.prefered.eid, email3.eid)
def test_mangling(self):
eid = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
@@ -108,10 +105,13 @@
self.vreg.register_appobject_class(MyUser)
self.vreg['etypes'].initialization_completed()
MyUser_ = self.vreg['etypes'].etype_class('CWUser')
- self.failIf(MyUser is MyUser_.__bases__)
- self.failUnless(MyUser in MyUser_.__bases__)
+ # a copy is done systematically
+ self.failUnless(issubclass(MyUser_, MyUser))
self.failUnless(implements(MyUser_, IMileStone))
self.failUnless(implements(MyUser_, IWorkflowable))
+ # original class should not have beed modified, only the copy
+ self.failUnless(implements(MyUser, IMileStone))
+ self.failIf(implements(MyUser, IWorkflowable))
class SpecializedEntityClassesTC(CubicWebTC):