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 |