test/unittest_entity.py
branchtls-sprint
changeset 744 4da6e0f4df2a
parent 720 36b64f712ec9
child 748 eec752381926
equal deleted inserted replaced
743:62ff117dc99c 744:4da6e0f4df2a
    14 ##         self.add_entity('Tag', name=u'x')
    14 ##         self.add_entity('Tag', name=u'x')
    15 ##         self.add_entity('Link', title=u'perdu', url=u'http://www.perdu.com',
    15 ##         self.add_entity('Link', title=u'perdu', url=u'http://www.perdu.com',
    16 ##                         embed=False)
    16 ##                         embed=False)
    17     
    17     
    18     def test_boolean_value(self):
    18     def test_boolean_value(self):
    19         e = self.etype_instance('Tag')
    19         e = self.etype_instance('EUser')
    20         self.failUnless(e)
    20         self.failUnless(e)
    21 
    21 
    22     def test_yams_inheritance(self):
    22     def test_yams_inheritance(self):
    23         from entities import AnotherNote
    23         from entities import AnotherNote
    24         e = self.etype_instance('SubNote')
    24         e = self.etype_instance('SubNote')
    25         self.assertIsInstance(e, AnotherNote)
    25         self.assertIsInstance(e, AnotherNote)
    26         e2 = self.etype_instance('SubNote')
    26         e2 = self.etype_instance('SubNote')
    27         self.assertIs(e.__class__, e2.__class__)
    27         self.assertIs(e.__class__, e2.__class__)
    28 
    28 
    29     def test_has_eid(self):
    29     def test_has_eid(self):
    30         e = self.etype_instance('Tag')
    30         e = self.etype_instance('EUser')
    31         self.assertEquals(e.eid, None)
    31         self.assertEquals(e.eid, None)
    32         self.assertEquals(e.has_eid(), False)
    32         self.assertEquals(e.has_eid(), False)
    33         e.eid = 'X'
    33         e.eid = 'X'
    34         self.assertEquals(e.has_eid(), False)
    34         self.assertEquals(e.has_eid(), False)
    35         e.eid = 0
    35         e.eid = 0
   165             Societe.fetch_attrs = sfetch_attrs
   165             Societe.fetch_attrs = sfetch_attrs
   166 
   166 
   167     def test_related_rql(self):
   167     def test_related_rql(self):
   168         from cubicweb.entities import fetch_config
   168         from cubicweb.entities import fetch_config
   169         Personne = self.vreg.etype_class('Personne')
   169         Personne = self.vreg.etype_class('Personne')
   170         Societe = self.vreg.etype_class('Societe')
   170         Note = self.vreg.etype_class('Note')
   171         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', 'prenom', 'sexe'))
   171         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', 'type'))
   172         Societe.fetch_attrs, Societe.fetch_order = fetch_config(('nom', 'web'))
   172         Note.fetch_attrs, Note.fetch_order = fetch_config(('type',))
   173         aff = self.add_entity('Affaire', sujet=u'my subject', ref=u'the ref')
   173         aff = self.add_entity('Personne', nom=u'pouet')
   174         self.assertEquals(aff.related_rql('liee_a'),
   174         self.assertEquals(aff.related_rql('evaluee'),
   175                           'Any X,AA,AB ORDERBY AA ASC WHERE E eid %(x)s, E liee_a X, '
   175                           'Any X,AA,AB ORDERBY AA ASC WHERE E eid %(x)s, E evaluee X, '
   176                           'X nom AA, X modification_date AB')
   176                           'X type AA, X modification_date AB')
   177         Societe.fetch_attrs = ('web',)
   177         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', ))
   178         self.assertEquals(aff.related_rql('liee_a'),
   178         # XXX
   179                           'Any X ORDERBY Z DESC WHERE X modification_date Z, E eid %(x)s, E liee_a X')
   179         self.assertEquals(aff.related_rql('evaluee'),
       
   180                           'Any X,AA ORDERBY Z DESC WHERE X modification_date Z, E eid %(x)s, E evaluee X, X modification_date AA')
   180     
   181     
   181     def test_entity_unrelated(self):
   182     def test_entity_unrelated(self):
   182         p = self.add_entity('Personne', nom=u'di mascio', prenom=u'adrien')
   183         p = self.add_entity('Personne', nom=u'di mascio', prenom=u'adrien')
   183         e = self.add_entity('Tag', name=u'x')
   184         e = self.add_entity('Tag', name=u'x')
   184         rschema = e.e_schema.subject_relation('tags')
   185         rschema = e.e_schema.subject_relation('tags')
   263                                ('created_by', 'object'),
   264                                ('created_by', 'object'),
   264                                ('wf_info_for', 'object'),
   265                                ('wf_info_for', 'object'),
   265                                ('owned_by', 'object'),
   266                                ('owned_by', 'object'),
   266                                ('bookmarked_by', 'object')])
   267                                ('bookmarked_by', 'object')])
   267         e = self.etype_instance('Personne')
   268         e = self.etype_instance('Personne')
       
   269         print rbc(e.relations_by_category('primary'))
   268         self.assertListEquals(rbc(e.relations_by_category('primary')),
   270         self.assertListEquals(rbc(e.relations_by_category('primary')),
   269                               [('nom', 'subject'), ('eid', 'subject')])
   271                               [('nom', 'subject'), ('eid', 'subject')])
   270         self.assertListEquals(rbc(e.relations_by_category('secondary')),
   272         self.assertListEquals(rbc(e.relations_by_category('secondary')),
   271                               [('prenom', 'subject'),
   273                               [('prenom', 'subject'),
   272                                ('sexe', 'subject'),
   274                                ('sexe', 'subject'),
   384         e['content'] = u'été'
   386         e['content'] = u'été'
   385         self.assertEquals(e.printable_value('content'), e['content'])
   387         self.assertEquals(e.printable_value('content'), e['content'])
   386         
   388         
   387 
   389 
   388     def test_entity_formatted_attrs(self):
   390     def test_entity_formatted_attrs(self):
   389         e = self.etype_instance('Note')
   391         e = self.etype_instance('EUser')
   390         self.assertEquals(e.formatted_attrs(), [])
   392         self.assertEquals(e.formatted_attrs(), [])
   391         e = self.etype_instance('File')
   393         e = self.etype_instance('File')
   392         self.assertEquals(e.formatted_attrs(), ['description'])
   394         self.assertEquals(e.formatted_attrs(), ['description'])
   393         e = self.etype_instance('AnotherNote')
       
   394         self.assertEquals(e.formatted_attrs(), ['descr', 'descr2'])
       
   395         
   395         
   396         
   396         
   397     def test_fulltextindex(self):
   397     def test_fulltextindex(self):
   398         e = self.etype_instance('File')
   398         e = self.etype_instance('File')
   399         e['name'] = 'an html file'
   399         e['name'] = 'an html file'