server/test/unittest_rql2sql.py
changeset 7166 dde161937d3e
parent 7142 c47381851a3e
child 7194 79686c864bbf
equal deleted inserted replaced
7165:b817d44cb606 7166:dde161937d3e
  1217     def _parse(self, rqls):
  1217     def _parse(self, rqls):
  1218         for rql, sql in rqls:
  1218         for rql, sql in rqls:
  1219             yield self._check, rql, sql
  1219             yield self._check, rql, sql
  1220 
  1220 
  1221     def _checkall(self, rql, sql):
  1221     def _checkall(self, rql, sql):
       
  1222         if isinstance(rql, tuple):
       
  1223             rql, args = rql
       
  1224         else:
       
  1225             args = None
  1222         try:
  1226         try:
  1223             rqlst = self._prepare(rql)
  1227             rqlst = self._prepare(rql)
  1224             r, args, cbs = self.o.generate(rqlst)
  1228             r, args, cbs = self.o.generate(rqlst, args)
  1225             self.assertEqual((r.strip(), args), sql)
  1229             self.assertEqual((r.strip(), args), sql)
  1226         except Exception, ex:
  1230         except Exception, ex:
  1227             print rql
  1231             print rql
  1228             if 'r' in locals():
  1232             if 'r' in locals():
  1229                 print r.strip()
  1233                 print r.strip()
  1231                 print sql[0].strip()
  1235                 print sql[0].strip()
  1232             raise
  1236             raise
  1233         return
  1237         return
  1234 
  1238 
  1235     def test1(self):
  1239     def test1(self):
  1236         self._checkall('Any count(RDEF) WHERE RDEF relation_type X, X eid %(x)s',
  1240         self._checkall(('Any count(RDEF) WHERE RDEF relation_type X, X eid %(x)s', {'x': None}),
  1237                        ("""SELECT COUNT(T1.C0) FROM (SELECT _RDEF.cw_eid AS C0
  1241                        ("""SELECT COUNT(T1.C0) FROM (SELECT _RDEF.cw_eid AS C0
  1238 FROM cw_CWAttribute AS _RDEF
  1242 FROM cw_CWAttribute AS _RDEF
  1239 WHERE _RDEF.cw_relation_type=%(x)s
  1243 WHERE _RDEF.cw_relation_type=%(x)s
  1240 UNION ALL
  1244 UNION ALL
  1241 SELECT _RDEF.cw_eid AS C0
  1245 SELECT _RDEF.cw_eid AS C0
  1242 FROM cw_CWRelation AS _RDEF
  1246 FROM cw_CWRelation AS _RDEF
  1243 WHERE _RDEF.cw_relation_type=%(x)s) AS T1""", {}),
  1247 WHERE _RDEF.cw_relation_type=%(x)s) AS T1""", {}),
  1244                        )
  1248                        )
  1245 
  1249 
  1246     def test2(self):
  1250     def test2(self):
  1247         self._checkall('Any X WHERE C comments X, C eid %(x)s',
  1251         self._checkall(('Any X WHERE C comments X, C eid %(x)s', {'x': None}),
  1248                        ('''SELECT rel_comments0.eid_to
  1252                        ('''SELECT rel_comments0.eid_to
  1249 FROM comments_relation AS rel_comments0
  1253 FROM comments_relation AS rel_comments0
  1250 WHERE rel_comments0.eid_from=%(x)s''', {})
  1254 WHERE rel_comments0.eid_from=%(x)s''', {})
  1251                        )
  1255                        )
  1252 
  1256