entities/test/unittest_base.py
changeset 3890 d7a270f50f54
parent 3455 a0a252643227
parent 3831 5eb369d24e7d
child 4024 6a14cff373c3
equal deleted inserted replaced
3810:5b75fd66c80e 3890:d7a270f50f54
    42         self.assertEquals(self.schema['CWUser'].meta_attributes(), {})
    42         self.assertEquals(self.schema['CWUser'].meta_attributes(), {})
    43         self.assertEquals(dict((str(k), v) for k, v in self.schema['State'].meta_attributes().iteritems()),
    43         self.assertEquals(dict((str(k), v) for k, v in self.schema['State'].meta_attributes().iteritems()),
    44                           {'description_format': ('format', 'description')})
    44                           {'description_format': ('format', 'description')})
    45 
    45 
    46 
    46 
    47 class CWUserTC(BaseEntityTC):
       
    48     def test_dc_title_and_name(self):
       
    49         e = self.entity('CWUser U WHERE U login "member"')
       
    50         self.assertEquals(e.dc_title(), 'member')
       
    51         self.assertEquals(e.name(), 'member')
       
    52         self.execute(u'SET X firstname "bouah" WHERE X is CWUser, X login "member"')
       
    53         self.assertEquals(e.dc_title(), 'member')
       
    54         self.assertEquals(e.name(), u'bouah')
       
    55         self.execute(u'SET X surname "lôt" WHERE X is CWUser, X login "member"')
       
    56         self.assertEquals(e.dc_title(), 'member')
       
    57         self.assertEquals(e.name(), u'bouah lôt')
       
    58 
       
    59 class EmailAddressTC(BaseEntityTC):
    47 class EmailAddressTC(BaseEntityTC):
    60     def test_canonical_form(self):
    48     def test_canonical_form(self):
    61         email1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
    49         email1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
    62         email2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com"').get_entity(0, 0)
    50         email2 = self.execute('INSERT EmailAddress X: X address "maarten@philips.com"').get_entity(0, 0)
    63         email3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"').get_entity(0, 0)
    51         email3 = self.execute('INSERT EmailAddress X: X address "toto@logilab.fr"').get_entity(0, 0)
    64         self.execute('SET X prefered_form Y WHERE X eid %s, Y eid %s' % (email1.eid, email2.eid))
    52         email1.set_relations(prefered_form=email2)
    65         self.assertEquals(email1.prefered.eid, email2.eid)
    53         self.assertEquals(email1.prefered.eid, email2.eid)
    66         self.assertEquals(email2.prefered.eid, email2.eid)
    54         self.assertEquals(email2.prefered.eid, email2.eid)
    67         self.assertEquals(email3.prefered.eid, email3.eid)
    55         self.assertEquals(email3.prefered.eid, email3.eid)
    68 
    56 
    69     def test_mangling(self):
    57     def test_mangling(self):
    70         eid = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
    58         email = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"').get_entity(0, 0)
    71         email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
       
    72         self.assertEquals(email.display_address(), 'maarten.ter.huurne@philips.com')
    59         self.assertEquals(email.display_address(), 'maarten.ter.huurne@philips.com')
    73         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne@philips.com')
    60         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne@philips.com')
    74         self.vreg.config.global_set_option('mangle-emails', True)
    61         self.vreg.config.global_set_option('mangle-emails', True)
    75         self.assertEquals(email.display_address(), 'maarten.ter.huurne at philips dot com')
    62         self.assertEquals(email.display_address(), 'maarten.ter.huurne at philips dot com')
    76         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne at philips dot com')
    63         self.assertEquals(email.printable_value('address'), 'maarten.ter.huurne at philips dot com')
    77         eid = self.execute('INSERT EmailAddress X: X address "syt"')[0][0]
    64         email = self.execute('INSERT EmailAddress X: X address "syt"').get_entity(0, 0)
    78         email = self.entity('Any X WHERE X eid %(x)s', {'x':eid}, 'x')
       
    79         self.assertEquals(email.display_address(), 'syt')
    65         self.assertEquals(email.display_address(), 'syt')
    80         self.assertEquals(email.printable_value('address'), 'syt')
    66         self.assertEquals(email.printable_value('address'), 'syt')
    81 
    67 
    82 
    68 
    83 class CWUserTC(BaseEntityTC):
    69 class CWUserTC(BaseEntityTC):
    90         e = self.entity('CWUser X WHERE X login "admin"')
    76         e = self.entity('CWUser X WHERE X login "admin"')
    91         self.failUnless(e.matching_groups('managers'))
    77         self.failUnless(e.matching_groups('managers'))
    92         self.failIf(e.matching_groups('xyz'))
    78         self.failIf(e.matching_groups('xyz'))
    93         self.failUnless(e.matching_groups(('xyz', 'managers')))
    79         self.failUnless(e.matching_groups(('xyz', 'managers')))
    94         self.failIf(e.matching_groups(('xyz', 'abcd')))
    80         self.failIf(e.matching_groups(('xyz', 'abcd')))
       
    81 
       
    82     def test_dc_title_and_name(self):
       
    83         e = self.entity('CWUser U WHERE U login "member"')
       
    84         self.assertEquals(e.dc_title(), 'member')
       
    85         self.assertEquals(e.name(), 'member')
       
    86         e.set_attributes(firstname=u'bouah')
       
    87         self.assertEquals(e.dc_title(), 'member')
       
    88         self.assertEquals(e.name(), u'bouah')
       
    89         e.set_attributes(surname=u'lôt')
       
    90         self.assertEquals(e.dc_title(), 'member')
       
    91         self.assertEquals(e.name(), u'bouah lôt')
       
    92 
       
    93     def test_allowed_massmail_keys(self):
       
    94         e = self.entity('CWUser U WHERE U login "member"')
       
    95         # Bytes/Password attributes should be omited
       
    96         self.assertEquals(e.allowed_massmail_keys(),
       
    97                           set(('surname', 'firstname', 'login', 'last_login_time',
       
    98                                'creation_date', 'modification_date', 'cwuri', 'eid'))
       
    99                           )
    95 
   100 
    96 
   101 
    97 class InterfaceTC(CubicWebTC):
   102 class InterfaceTC(CubicWebTC):
    98 
   103 
    99     def test_nonregr_subclasses_and_mixins_interfaces(self):
   104     def test_nonregr_subclasses_and_mixins_interfaces(self):