entities/test/unittest_base.py
changeset 3890 d7a270f50f54
parent 3455 a0a252643227
parent 3831 5eb369d24e7d
child 4024 6a14cff373c3
--- a/entities/test/unittest_base.py	Sun Nov 08 21:53:18 2009 +0100
+++ b/entities/test/unittest_base.py	Fri Nov 20 19:35:54 2009 +0100
@@ -44,38 +44,24 @@
                           {'description_format': ('format', 'description')})
 
 
-class CWUserTC(BaseEntityTC):
-    def test_dc_title_and_name(self):
-        e = self.entity('CWUser U WHERE U login "member"')
-        self.assertEquals(e.dc_title(), 'member')
-        self.assertEquals(e.name(), 'member')
-        self.execute(u'SET X firstname "bouah" WHERE X is CWUser, X login "member"')
-        self.assertEquals(e.dc_title(), 'member')
-        self.assertEquals(e.name(), u'bouah')
-        self.execute(u'SET X surname "lôt" WHERE X is CWUser, X login "member"')
-        self.assertEquals(e.dc_title(), 'member')
-        self.assertEquals(e.name(), u'bouah lôt')
-
 class EmailAddressTC(BaseEntityTC):
     def test_canonical_form(self):
         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))
+        email1.set_relations(prefered_form=email2)
         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]
-        email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
+        email = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
         self.assertEquals(email.display_address(), 'maarten.ter.huurne@philips.com')
         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne@philips.com')
         self.vreg.config.global_set_option('mangle-emails', True)
         self.assertEquals(email.display_address(), 'maarten.ter.huurne at philips dot com')
         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne at philips dot com')
-        eid = self.execute('INSERT EmailAddress X: X address "syt"')[0][0]
-        email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
+        email = self.execute('INSERT EmailAddress X: X address "syt"').get_entity(0, 0)
         self.assertEquals(email.display_address(), 'syt')
         self.assertEquals(email.printable_value('address'), 'syt')
 
@@ -93,6 +79,25 @@
         self.failUnless(e.matching_groups(('xyz', 'managers')))
         self.failIf(e.matching_groups(('xyz', 'abcd')))
 
+    def test_dc_title_and_name(self):
+        e = self.entity('CWUser U WHERE U login "member"')
+        self.assertEquals(e.dc_title(), 'member')
+        self.assertEquals(e.name(), 'member')
+        e.set_attributes(firstname=u'bouah')
+        self.assertEquals(e.dc_title(), 'member')
+        self.assertEquals(e.name(), u'bouah')
+        e.set_attributes(surname=u'lôt')
+        self.assertEquals(e.dc_title(), 'member')
+        self.assertEquals(e.name(), u'bouah lôt')
+
+    def test_allowed_massmail_keys(self):
+        e = self.entity('CWUser U WHERE U login "member"')
+        # Bytes/Password attributes should be omited
+        self.assertEquals(e.allowed_massmail_keys(),
+                          set(('surname', 'firstname', 'login', 'last_login_time',
+                               'creation_date', 'modification_date', 'cwuri', 'eid'))
+                          )
+
 
 class InterfaceTC(CubicWebTC):