test/unittest_entity.py
changeset 3674 387d51af966d
parent 3589 a5432f99f2d9
parent 3672 554a588ffaea
child 3720 5376aaadd16b
--- a/test/unittest_entity.py	Tue Oct 13 18:21:24 2009 +0200
+++ b/test/unittest_entity.py	Thu Oct 15 10:31:54 2009 +0200
@@ -185,7 +185,19 @@
         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', ))
         # XXX
         self.assertEquals(p.related_rql('evaluee'),
-                          'Any X,AA ORDERBY Z DESC WHERE X modification_date Z, E eid %(x)s, E evaluee X, X modification_date AA')
+                          'Any X,AA ORDERBY Z DESC '
+                          'WHERE X modification_date Z, E eid %(x)s, E evaluee X, '
+                          'X modification_date AA')
+
+        tag = self.vreg['etypes'].etype_class('Tag')(self.request())
+        self.assertEquals(tag.related_rql('tags', 'subject'),
+                          'Any X,AA ORDERBY Z DESC '
+                          'WHERE X modification_date Z, E eid %(x)s, E tags X, '
+                          'X modification_date AA')
+        self.assertEquals(tag.related_rql('tags', 'subject', ('Personne',)),
+                          'Any X,AA,AB ORDERBY AA ASC '
+                          'WHERE E eid %(x)s, E tags XE is IN (Personne), X nom AA, '
+                          'X modification_date AB')
 
     def test_unrelated_rql_security_1(self):
         user = self.request().user
@@ -460,6 +472,21 @@
         self.assertEquals(card.absolute_url(),
                           'http://testing.fr/cubicweb/card/eid/%s' % card.eid)
 
+    def test_create_entity(self):
+        p1 = self.add_entity('Personne', nom=u'fayolle', prenom=u'alexandre')
+        p2 = self.add_entity('Personne', nom=u'campeas', prenom=u'aurelien')
+        note = self.add_entity('Note', type=u'z')
+        req = self.request()
+        p = req.create_entity('Personne', nom=u'di mascio', prenom=u'adrien',
+                              connait=p1, evaluee=[p1, p2],
+                              reverse_ecrit_par=note)
+        self.assertEquals(p.nom, 'di mascio')
+        self.assertEquals([c.nom for c in p.connait], ['fayolle'])
+        self.assertEquals(sorted([c.nom for c in p.evaluee]), ['campeas', 'fayolle'])
+        self.assertEquals([c.type for c in p.reverse_ecrit_par], ['z'])
+
+
+
 if __name__ == '__main__':
     from logilab.common.testlib import unittest_main
     unittest_main()