test/unittest_entity.py
changeset 3720 5376aaadd16b
parent 3674 387d51af966d
parent 3689 deb13e88e037
child 3777 3ef8cdb5fb1c
equal deleted inserted replaced
3678:29f74716fd70 3720:5376aaadd16b
   118         Personne = self.vreg['etypes'].etype_class('Personne')
   118         Personne = self.vreg['etypes'].etype_class('Personne')
   119         Societe = self.vreg['etypes'].etype_class('Societe')
   119         Societe = self.vreg['etypes'].etype_class('Societe')
   120         Note = self.vreg['etypes'].etype_class('Note')
   120         Note = self.vreg['etypes'].etype_class('Note')
   121         peschema = Personne.e_schema
   121         peschema = Personne.e_schema
   122         seschema = Societe.e_schema
   122         seschema = Societe.e_schema
   123         peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '1*')
   123         peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '1*')
   124         peschema.subject_relation('connait').set_rproperty(peschema, peschema, 'cardinality', '11')
   124         peschema.subjrels['connait'].set_rproperty(peschema, peschema, 'cardinality', '11')
   125         peschema.subject_relation('evaluee').set_rproperty(peschema, Note.e_schema, 'cardinality', '1*')
   125         peschema.subjrels['evaluee'].set_rproperty(peschema, Note.e_schema, 'cardinality', '1*')
   126         seschema.subject_relation('evaluee').set_rproperty(seschema, Note.e_schema, 'cardinality', '1*')
   126         seschema.subjrels['evaluee'].set_rproperty(seschema, Note.e_schema, 'cardinality', '1*')
   127         # testing basic fetch_attrs attribute
   127         # testing basic fetch_attrs attribute
   128         self.assertEquals(Personne.fetch_rql(user),
   128         self.assertEquals(Personne.fetch_rql(user),
   129                           'Any X,AA,AB,AC ORDERBY AA ASC '
   129                           'Any X,AA,AB,AC ORDERBY AA ASC '
   130                           'WHERE X is Personne, X nom AA, X prenom AB, X modification_date AC')
   130                           'WHERE X is Personne, X nom AA, X prenom AB, X modification_date AC')
   131         pfetch_attrs = Personne.fetch_attrs
   131         pfetch_attrs = Personne.fetch_attrs
   156             # testing symetric relation
   156             # testing symetric relation
   157             Personne.fetch_attrs = ('nom', 'connait')
   157             Personne.fetch_attrs = ('nom', 'connait')
   158             self.assertEquals(Personne.fetch_rql(user), 'Any X,AA,AB ORDERBY AA ASC '
   158             self.assertEquals(Personne.fetch_rql(user), 'Any X,AA,AB ORDERBY AA ASC '
   159                               'WHERE X is Personne, X nom AA, X connait AB?')
   159                               'WHERE X is Personne, X nom AA, X connait AB?')
   160             # testing optional relation
   160             # testing optional relation
   161             peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '?*')
   161             peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '?*')
   162             Personne.fetch_attrs = ('nom', 'prenom', 'travaille')
   162             Personne.fetch_attrs = ('nom', 'prenom', 'travaille')
   163             Societe.fetch_attrs = ('nom',)
   163             Societe.fetch_attrs = ('nom',)
   164             self.assertEquals(Personne.fetch_rql(user),
   164             self.assertEquals(Personne.fetch_rql(user),
   165                               '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')
   165                               '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')
   166             # testing relation with cardinality > 1
   166             # testing relation with cardinality > 1
   167             peschema.subject_relation('travaille').set_rproperty(peschema, seschema, 'cardinality', '**')
   167             peschema.subjrels['travaille'].set_rproperty(peschema, seschema, 'cardinality', '**')
   168             self.assertEquals(Personne.fetch_rql(user),
   168             self.assertEquals(Personne.fetch_rql(user),
   169                               'Any X,AA,AB ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB')
   169                               'Any X,AA,AB ORDERBY AA ASC WHERE X is Personne, X nom AA, X prenom AB')
   170             # XXX test unauthorized attribute
   170             # XXX test unauthorized attribute
   171         finally:
   171         finally:
   172             Personne.fetch_attrs = pfetch_attrs
   172             Personne.fetch_attrs = pfetch_attrs