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 |