server/test/unittest_querier.py
changeset 8018 f01c80513274
parent 8002 822a8150f78d
child 8019 eb83c52ffa0c
equal deleted inserted replaced
8016:1a1b23c37013 8018:f01c80513274
  1225         self.execute("INSERT Personne Y: Y nom 'toto'")
  1225         self.execute("INSERT Personne Y: Y nom 'toto'")
  1226         self.assertRaises(Exception, self.execute, "SET X nom 'toto', X is Personne")
  1226         self.assertRaises(Exception, self.execute, "SET X nom 'toto', X is Personne")
  1227         self.assertRaises(QueryError, self.execute, "SET X nom 'toto', X has_text 'tutu' WHERE X is Personne")
  1227         self.assertRaises(QueryError, self.execute, "SET X nom 'toto', X has_text 'tutu' WHERE X is Personne")
  1228         self.assertRaises(QueryError, self.execute, "SET X login 'tutu', X eid %s" % cnx.user(self.session).eid)
  1228         self.assertRaises(QueryError, self.execute, "SET X login 'tutu', X eid %s" % cnx.user(self.session).eid)
  1229 
  1229 
       
  1230     # HAVING on write queries test #############################################
       
  1231 
       
  1232     def test_update_having(self):
       
  1233         peid1 = self.execute("INSERT Personne Y: Y nom 'hop', Y tel 1")[0][0]
       
  1234         peid2 = self.execute("INSERT Personne Y: Y nom 'hop', Y tel 2")[0][0]
       
  1235         rset = self.execute("SET X tel 3 WHERE X tel TEL HAVING TEL&1=1")
       
  1236         self.assertEqual(tuplify(rset.rows), [(peid1, 3)])
       
  1237 
       
  1238     def test_insert_having(self):
       
  1239         self.skip('unsupported yet')
       
  1240         self.execute("INSERT Personne Y: Y nom 'hop', Y tel 1")[0][0]
       
  1241         with self.debugged('DBG_SQL'):
       
  1242             self.assertFalse(self.execute("INSERT Personne Y: Y nom 'hop', Y tel 2 WHERE X tel XT HAVING XT&2=2"))
       
  1243             self.assertTrue(self.execute("INSERT Personne Y: Y nom 'hop', Y tel 2 WHERE X tel XT HAVING XT&1=1"))
       
  1244 
       
  1245     def test_delete_having(self):
       
  1246         self.execute("INSERT Personne Y: Y nom 'hop', Y tel 1")[0][0]
       
  1247         self.assertFalse(self.execute("DELETE Personne Y WHERE X tel XT HAVING XT&2=2"))
       
  1248         self.assertTrue(self.execute("DELETE Personne Y WHERE X tel XT HAVING XT&1=1"))
       
  1249 
  1230     # upassword encryption tests #################################################
  1250     # upassword encryption tests #################################################
  1231 
  1251 
  1232     def test_insert_upassword(self):
  1252     def test_insert_upassword(self):
  1233         rset = self.execute("INSERT CWUser X: X login 'bob', X upassword 'toto'")
  1253         rset = self.execute("INSERT CWUser X: X login 'bob', X upassword 'toto'")
  1234         self.assertEqual(len(rset.rows), 1)
  1254         self.assertEqual(len(rset.rows), 1)