test/unittest_entity.py
branchtls-sprint
changeset 1284 63ed4f4ff38d
parent 1098 739d4dce9b19
child 1341 9502d02630bf
equal deleted inserted replaced
1283:d812bd08c11c 1284:63ed4f4ff38d
   206         rschema = e.e_schema.subject_relation('in_group')
   206         rschema = e.e_schema.subject_relation('in_group')
   207         unrelated = [reid for rview, reid in e.vocabulary(rschema, 'subject')]
   207         unrelated = [reid for rview, reid in e.vocabulary(rschema, 'subject')]
   208         # should be default groups but owners, i.e. managers, users, guests
   208         # should be default groups but owners, i.e. managers, users, guests
   209         self.assertEquals(len(unrelated), 3)
   209         self.assertEquals(len(unrelated), 3)
   210 
   210 
   211 
       
   212     def test_rtags_expansion(self):
       
   213         from cubicweb.entities import AnyEntity
       
   214         class Personne(AnyEntity):
       
   215             id = 'Personne'
       
   216             __rtags__ = {
       
   217                 ('travaille', 'Societe', 'subject') : set(('primary',)),
       
   218                 ('evaluee', '*', 'subject') : set(('secondary',)),
       
   219                 'ecrit_par' : set(('inlineview',)),
       
   220                 }
       
   221         self.vreg.register_vobject_class(Personne)
       
   222         rtags = Personne.rtags
       
   223         self.assertEquals(rtags.get_tags('evaluee', 'Note', 'subject'), set(('secondary', 'link')))
       
   224         self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False)
       
   225         self.assertEquals(rtags.get_tags('evaluee', 'Personne', 'subject'), set(('secondary', 'link')))
       
   226         self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False)
       
   227         self.assertEquals(rtags.get_tags('ecrit_par', 'Note', 'object'), set(('inlineview', 'link')))
       
   228         self.assertEquals(rtags.is_inlined('ecrit_par', 'Note', 'object'), True)
       
   229         class Personne2(Personne):
       
   230             id = 'Personne'
       
   231             __rtags__ = {
       
   232                 ('evaluee', 'Note', 'subject') : set(('inlineview',)),
       
   233                 }
       
   234         self.vreg.register_vobject_class(Personne2)
       
   235         rtags = Personne2.rtags
       
   236         self.assertEquals(rtags.get_tags('evaluee', 'Note', 'subject'), set(('inlineview', 'link')))
       
   237         self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True)
       
   238         self.assertEquals(rtags.get_tags('evaluee', 'Personne', 'subject'), set(('secondary', 'link')))
       
   239         self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False)
       
   240     
       
   241     def test_relations_by_category(self):
       
   242         e = self.etype_instance('EUser')
       
   243         def rbc(iterable):
       
   244             return [(rschema.type, x) for rschema, tschemas, x in iterable]
       
   245         self.assertEquals(rbc(e.relations_by_category('primary')),
       
   246                           [('login', 'subject'), ('upassword', 'subject'),
       
   247                            ('in_group', 'subject'), ('in_state', 'subject'),
       
   248                            ('eid', 'subject'),])
       
   249         # firstname and surname are put in secondary category in views.entities.EUserEntity
       
   250         self.assertListEquals(rbc(e.relations_by_category('secondary')),
       
   251                               [('firstname', 'subject'), ('surname', 'subject')])
       
   252         self.assertListEquals(rbc(e.relations_by_category('generic')),
       
   253                               [('primary_email', 'subject'),
       
   254                                ('evaluee', 'subject'),
       
   255                                ('for_user', 'object')])
       
   256         # owned_by is defined both as subject and object relations on EUser
       
   257         self.assertListEquals(rbc(e.relations_by_category('generated')),
       
   258                               [('last_login_time', 'subject'),
       
   259                                ('created_by', 'subject'),
       
   260                                ('creation_date', 'subject'),
       
   261                                ('is', 'subject'),
       
   262                                ('is_instance_of', 'subject'),
       
   263                                ('modification_date', 'subject'),
       
   264                                ('owned_by', 'subject'),
       
   265                                ('created_by', 'object'),
       
   266                                ('wf_info_for', 'object'),
       
   267                                ('owned_by', 'object'),
       
   268                                ('bookmarked_by', 'object')])
       
   269         e = self.etype_instance('Personne')
       
   270         self.assertListEquals(rbc(e.relations_by_category('primary')),
       
   271                               [('nom', 'subject'), ('eid', 'subject')])
       
   272         self.assertListEquals(rbc(e.relations_by_category('secondary')),
       
   273                               [('prenom', 'subject'),
       
   274                                ('type', 'subject'),])
       
   275         self.assertListEquals(rbc(e.relations_by_category('generic')),
       
   276                               [('travaille', 'subject'),
       
   277                                ('evaluee', 'subject'),
       
   278                                ('connait', 'subject'),
       
   279                                ('ecrit_par', 'object'),
       
   280                                ('evaluee', 'object'),
       
   281                                ('tags', 'object')])
       
   282         self.assertListEquals(rbc(e.relations_by_category('generated')),
       
   283                               [('created_by', 'subject'),
       
   284                                ('creation_date', 'subject'),
       
   285                                ('is', 'subject'),
       
   286                                ('is_instance_of', 'subject'),
       
   287                                ('modification_date', 'subject'),
       
   288                                ('owned_by', 'subject')])
       
   289         
       
   290 
       
   291     def test_printable_value_string(self):
   211     def test_printable_value_string(self):
   292         e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`',
   212         e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`',
   293                             content_format=u'text/rest')
   213                             content_format=u'text/rest')
   294         self.assertEquals(e.printable_value('content'),
   214         self.assertEquals(e.printable_value('content'),
   295                           '<p>du <a class="reference" href="http://testing.fr/cubicweb/egroup/managers">*ReST*</a></p>\n')
   215                           '<p>du <a class="reference" href="http://testing.fr/cubicweb/egroup/managers">*ReST*</a></p>\n')