server/test/unittest_rqlannotation.py
branchtls-sprint
changeset 1398 5fe84a5f7035
parent 967 aeeec5447eb0
child 1802 d628defebc17
equal deleted inserted replaced
1397:6cbc7bc8ea6d 1398:5fe84a5f7035
    35         rqlst = self._prepare('Any A,B,C WHERE A eid 12,A comment B, A ?wf_info_for C')
    35         rqlst = self._prepare('Any A,B,C WHERE A eid 12,A comment B, A ?wf_info_for C')
    36         self.assertEquals(rqlst.defined_vars['A']._q_invariant, False)
    36         self.assertEquals(rqlst.defined_vars['A']._q_invariant, False)
    37         self.assert_(rqlst.defined_vars['B'].stinfo['attrvar'])
    37         self.assert_(rqlst.defined_vars['B'].stinfo['attrvar'])
    38         self.assertEquals(rqlst.defined_vars['C']._q_invariant, False)
    38         self.assertEquals(rqlst.defined_vars['C']._q_invariant, False)
    39         self.assertEquals(rqlst.solutions, [{'A': 'TrInfo', 'B': 'String', 'C': 'Affaire'},
    39         self.assertEquals(rqlst.solutions, [{'A': 'TrInfo', 'B': 'String', 'C': 'Affaire'},
    40                                       {'A': 'TrInfo', 'B': 'String', 'C': 'EUser'},
    40                                       {'A': 'TrInfo', 'B': 'String', 'C': 'CWUser'},
    41                                       {'A': 'TrInfo', 'B': 'String', 'C': 'Note'}])
    41                                       {'A': 'TrInfo', 'B': 'String', 'C': 'Note'}])
    42 
    42 
    43     def test_0_5(self):        
    43     def test_0_5(self):        
    44         rqlst = self._prepare('Any P WHERE N ecrit_par P, N eid 0')
    44         rqlst = self._prepare('Any P WHERE N ecrit_par P, N eid 0')
    45         self.assertEquals(rqlst.defined_vars['N']._q_invariant, False)
    45         self.assertEquals(rqlst.defined_vars['N']._q_invariant, False)
   174         rqlst = self._prepare('Any Y WHERE NOT Y evaluee X')
   174         rqlst = self._prepare('Any Y WHERE NOT Y evaluee X')
   175         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)
   175         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)
   176         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   176         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   177         
   177         
   178     def test_not_relation_4_4(self):
   178     def test_not_relation_4_4(self):
   179         rqlst = self._prepare('Any X WHERE NOT Y evaluee X, Y is EUser')
   179         rqlst = self._prepare('Any X WHERE NOT Y evaluee X, Y is CWUser')
   180         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   180         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   181         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   181         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   182 
   182 
   183     def test_not_relation_4_5(self):
   183     def test_not_relation_4_5(self):
   184         rqlst = self._prepare('Any X WHERE NOT Y evaluee X, Y eid %s, X is Note' % self.ueid)
   184         rqlst = self._prepare('Any X WHERE NOT Y evaluee X, Y eid %s, X is Note' % self.ueid)
   185         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   185         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   186         self.assertEquals(rqlst.solutions, [{'X': 'Note'}])
   186         self.assertEquals(rqlst.solutions, [{'X': 'Note'}])
   187         
   187         
   188     def test_not_relation_5_1(self):
   188     def test_not_relation_5_1(self):
   189         rqlst = self._prepare('Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), NOT X read_permission Y')
   189         rqlst = self._prepare('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y')
   190         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   190         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   191         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   191         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   192 
   192 
   193     def test_not_relation_5_2(self):
   193     def test_not_relation_5_2(self):
   194         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), NOT X read_permission Y')
   194         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y')
   195         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   195         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   196         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   196         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   197 
   197 
   198     def test_not_relation_6(self):
   198     def test_not_relation_6(self):
   199         rqlst = self._prepare('Personne P where NOT P concerne A')
   199         rqlst = self._prepare('Personne P where NOT P concerne A')
   200         self.assertEquals(rqlst.defined_vars['P']._q_invariant, False)
   200         self.assertEquals(rqlst.defined_vars['P']._q_invariant, False)
   201         self.assertEquals(rqlst.defined_vars['A']._q_invariant, True)
   201         self.assertEquals(rqlst.defined_vars['A']._q_invariant, True)
   202 
   202 
   203     def test_not_relation_7(self):
   203     def test_not_relation_7(self):
   204         rqlst = self._prepare('Any K,V WHERE P is EProperty, P pkey K, P value V, NOT P for_user U') 
   204         rqlst = self._prepare('Any K,V WHERE P is CWProperty, P pkey K, P value V, NOT P for_user U') 
   205         self.assertEquals(rqlst.defined_vars['P']._q_invariant, False)
   205         self.assertEquals(rqlst.defined_vars['P']._q_invariant, False)
   206         self.assertEquals(rqlst.defined_vars['U']._q_invariant, True)
   206         self.assertEquals(rqlst.defined_vars['U']._q_invariant, True)
   207        
   207        
   208     def test_exists_1(self):        
   208     def test_exists_1(self):        
   209         rqlst = self._prepare('Any U WHERE U eid IN (1,2), EXISTS(X owned_by U)')
   209         rqlst = self._prepare('Any U WHERE U eid IN (1,2), EXISTS(X owned_by U)')
   219         rqlst = self._prepare('Any U WHERE EXISTS(X owned_by U, X bookmarked_by U)')
   219         rqlst = self._prepare('Any U WHERE EXISTS(X owned_by U, X bookmarked_by U)')
   220         self.assertEquals(rqlst.defined_vars['U']._q_invariant, False)
   220         self.assertEquals(rqlst.defined_vars['U']._q_invariant, False)
   221         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)
   221         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)
   222         
   222         
   223     def test_exists_4(self):
   223     def test_exists_4(self):
   224         rqlst = self._prepare('Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)')
   224         rqlst = self._prepare('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)')
   225         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   225         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   226         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   226         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   227         
   227         
   228     def test_exists_5(self):
   228     def test_exists_5(self):
   229         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)')
   229         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)')
   230         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   230         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   231         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, True)
   231         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, True)
   232 
   232 
   233     def test_not_exists_1(self):        
   233     def test_not_exists_1(self):        
   234         rqlst = self._prepare('Any U WHERE NOT EXISTS(X owned_by U, X bookmarked_by U)')
   234         rqlst = self._prepare('Any U WHERE NOT EXISTS(X owned_by U, X bookmarked_by U)')
   235         self.assertEquals(rqlst.defined_vars['U']._q_invariant, False)
   235         self.assertEquals(rqlst.defined_vars['U']._q_invariant, False)
   236         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)        
   236         self.assertEquals(rqlst.defined_vars['X']._q_invariant, True)        
   237 
   237 
   238     def test_not_exists_2(self):        
   238     def test_not_exists_2(self):        
   239         rqlst = self._prepare('Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)')
   239         rqlst = self._prepare('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)')
   240         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   240         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   241 
   241 
   242     def test_not_exists_distinct_1(self):        
   242     def test_not_exists_distinct_1(self):        
   243         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "EGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)')
   243         rqlst = self._prepare('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)')
   244         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   244         self.assertEquals(rqlst.defined_vars['Y']._q_invariant, False)
   245         
   245         
   246     def test_or_1(self):        
   246     def test_or_1(self):        
   247         rqlst = self._prepare('Any X WHERE X concerne B OR C concerne X, B eid 12, C eid 13')
   247         rqlst = self._prepare('Any X WHERE X concerne B OR C concerne X, B eid 12, C eid 13')
   248         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)
   248         self.assertEquals(rqlst.defined_vars['X']._q_invariant, False)