test/unittest_entity.py
branchstable
changeset 3689 deb13e88e037
parent 3672 554a588ffaea
child 3720 5376aaadd16b
child 3769 021d32e3a289
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
   125         Personne = self.vreg['etypes'].etype_class('Personne')
   125         Personne = self.vreg['etypes'].etype_class('Personne')
   126         Societe = self.vreg['etypes'].etype_class('Societe')
   126         Societe = self.vreg['etypes'].etype_class('Societe')
   127         Note = self.vreg['etypes'].etype_class('Note')
   127         Note = self.vreg['etypes'].etype_class('Note')
   128         peschema = Personne.e_schema
   128         peschema = Personne.e_schema
   129         seschema = Societe.e_schema
   129         seschema = Societe.e_schema
   130         peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '1*')
   130         peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '1*')
   131         peschema.subject_relation('connait').set_rproperty(peschema, peschema, 'cardinality', '11')
   131         peschema.subjrels['connait'].set_rproperty(peschema, peschema, 'cardinality', '11')
   132         peschema.subject_relation('evaluee').set_rproperty(peschema, Note.e_schema, 'cardinality', '1*')
   132         peschema.subjrels['evaluee'].set_rproperty(peschema, Note.e_schema, 'cardinality', '1*')
   133         seschema.subject_relation('evaluee').set_rproperty(seschema, Note.e_schema, 'cardinality', '1*')
   133         seschema.subjrels['evaluee'].set_rproperty(seschema, Note.e_schema, 'cardinality', '1*')
   134         # testing basic fetch_attrs attribute
   134         # testing basic fetch_attrs attribute
   135         self.assertEquals(Personne.fetch_rql(user),
   135         self.assertEquals(Personne.fetch_rql(user),
   136                           'Any X,AA,AB,AC ORDERBY AA ASC '
   136                           'Any X,AA,AB,AC ORDERBY AA ASC '
   137                           'WHERE X is Personne, X nom AA, X prenom AB, X modification_date AC')
   137                           'WHERE X is Personne, X nom AA, X prenom AB, X modification_date AC')
   138         pfetch_attrs = Personne.fetch_attrs
   138         pfetch_attrs = Personne.fetch_attrs
   163             # testing symetric relation
   163             # testing symetric relation
   164             Personne.fetch_attrs = ('nom', 'connait')
   164             Personne.fetch_attrs = ('nom', 'connait')
   165             self.assertEquals(Personne.fetch_rql(user), 'Any X,AA,AB ORDERBY AA ASC '
   165             self.assertEquals(Personne.fetch_rql(user), 'Any X,AA,AB ORDERBY AA ASC '
   166                               'WHERE X is Personne, X nom AA, X connait AB?')
   166                               'WHERE X is Personne, X nom AA, X connait AB?')
   167             # testing optional relation
   167             # testing optional relation
   168             peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '?*')
   168             peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '?*')
   169             Personne.fetch_attrs = ('nom', 'prenom', 'travaille')
   169             Personne.fetch_attrs = ('nom', 'prenom', 'travaille')
   170             Societe.fetch_attrs = ('nom',)
   170             Societe.fetch_attrs = ('nom',)
   171             self.assertEquals(Personne.fetch_rql(user),
   171             self.assertEquals(Personne.fetch_rql(user),
   172                               'Any X,AA,AB,AC,AD ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB, X travaille AC?, AC nom AD')
   172                               'Any X,AA,AB,AC,AD ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB, X travaille AC?, AC nom AD')
   173             # testing relation with cardinality > 1
   173             # testing relation with cardinality > 1
   174             peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '**')
   174             peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '**')
   175             self.assertEquals(Personne.fetch_rql(user),
   175             self.assertEquals(Personne.fetch_rql(user),
   176                               'Any X,AA,AB ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB')
   176                               'Any X,AA,AB ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB')
   177             # XXX test unauthorized attribute
   177             # XXX test unauthorized attribute
   178         finally:
   178         finally:
   179             Personne.fetch_attrs = pfetch_attrs
   179             Personne.fetch_attrs = pfetch_attrs