test/unittest_entity.py
branchstable
changeset 4630 528dee042927
parent 4467 0e73d299730a
child 4672 0288f8e5460c
equal deleted inserted replaced
4629:1eeef3cbf528 4630:528dee042927
   173             # XXX test unauthorized attribute
   173             # XXX test unauthorized attribute
   174         finally:
   174         finally:
   175             Personne.fetch_attrs = pfetch_attrs
   175             Personne.fetch_attrs = pfetch_attrs
   176             Societe.fetch_attrs = sfetch_attrs
   176             Societe.fetch_attrs = sfetch_attrs
   177 
   177 
   178     def test_related_rql(self):
   178     def test_related_rql_base(self):
   179         Personne = self.vreg['etypes'].etype_class('Personne')
   179         Personne = self.vreg['etypes'].etype_class('Personne')
   180         Note = self.vreg['etypes'].etype_class('Note')
   180         Note = self.vreg['etypes'].etype_class('Note')
   181         self.failUnless(issubclass(self.vreg['etypes'].etype_class('SubNote'), Note))
   181         self.failUnless(issubclass(self.vreg['etypes'].etype_class('SubNote'), Note))
   182         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', 'type'))
   182         Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', 'type'))
   183         Note.fetch_attrs, Note.fetch_order = fetch_config(('type',))
   183         Note.fetch_attrs, Note.fetch_order = fetch_config(('type',))
   199                           'X modification_date AA')
   199                           'X modification_date AA')
   200         self.assertEquals(tag.related_rql('tags', 'subject', ('Personne',)),
   200         self.assertEquals(tag.related_rql('tags', 'subject', ('Personne',)),
   201                           'Any X,AA,AB ORDERBY AA ASC '
   201                           'Any X,AA,AB ORDERBY AA ASC '
   202                           'WHERE E eid %(x)s, E tags X, X is IN (Personne), X nom AA, '
   202                           'WHERE E eid %(x)s, E tags X, X is IN (Personne), X nom AA, '
   203                           'X modification_date AB')
   203                           'X modification_date AB')
       
   204 
       
   205     def test_related_rql_ambigous_cant_use_fetch_order(self):
       
   206         tag = self.vreg['etypes'].etype_class('Tag')(self.request())
       
   207         for ttype in self.schema['tags'].objects():
       
   208             self.vreg['etypes'].etype_class(ttype).fetch_attrs = ('modification_date',)
       
   209         self.assertEquals(tag.related_rql('tags', 'subject'),
       
   210                           'Any X,AA ORDERBY AA DESC '
       
   211                           'WHERE E eid %(x)s, E tags X, X modification_date AA')
   204 
   212 
   205     def test_unrelated_rql_security_1(self):
   213     def test_unrelated_rql_security_1(self):
   206         user = self.request().user
   214         user = self.request().user
   207         rql = user.unrelated_rql('use_email', 'EmailAddress', 'subject')[0]
   215         rql = user.unrelated_rql('use_email', 'EmailAddress', 'subject')[0]
   208         self.assertEquals(rql, 'Any O,AA,AB,AC ORDERBY AC DESC '
   216         self.assertEquals(rql, 'Any O,AA,AB,AC ORDERBY AC DESC '