Ejemplo n.º 1
0
 def test_bad_values(self):
     foo = Foo.new()
     foo["i1"] = "xyz"
     try:
         sqlgen.insert(Foo, foo, sqlgen.DIALECT_SQLITE, "?")
     except TypeError, e:
         self.assertEquals("IntCol 'i1': int expected, got str", str(e))
Ejemplo n.º 2
0
 def test_auto_id(self):
     foo = Foo.new(foo_id=None, i1=25, s1="xyz")
     sql, values, auto_id_used = sqlgen.insert(Foo, foo, sqlgen.DIALECT_SQLITE, "?")
     self.assertEquals("INSERT INTO foo (i1,s1,d1) VALUES (?,?,NULL)", sql)
     self.assertEquals([25, "xyz"], values)
     sql, values, auto_id_used = sqlgen.insert(Foo, foo, sqlgen.DIALECT_POSTGRES, "?")
     self.assertEquals("INSERT INTO foo (i1,s1,d1) VALUES (?,?,NULL) RETURNING foo_id", sql)
     self.assertEquals([25, "xyz"], values)
     self.assert_(auto_id_used)
Ejemplo n.º 3
0
 def test_no_auto_id_col(self):
     bar = Bar.new(
         bi=5, bs="abc", bd=datetime.date(2006, 3, 21), bdt1=datetime.datetime(2006, 4, 13, 23, 58, 14), bb=True
     )
     sql, values, auto_id_used = sqlgen.insert(Bar, bar, sqlgen.DIALECT_POSTGRES, "%s")
     self.assertEquals("INSERT INTO bar (bi,bs,bd,bdt1,bb) VALUES (%s,%s,%s,%s,%s)", sql)
     self.assertEquals([5, u"abc", "2006-03-21", "2006-04-13T23:58:14Z", 1], values)
     self.assertFalse(auto_id_used)
Ejemplo n.º 4
0
 def insert(self, table, row):
     # read only check
     self._check_write_ok()
     # gen sql
     sql, values, auto_id_used = \
         sqlgen.insert(table, row, self.dialect, self.paramstr)
     # execute sql
     cursor = self._execute(sql, values)
     assert cursor.rowcount == 1, \
         "insert(): expected rowcount=1, got %s" % cursor.rowcount
     # replace AutoIdCol None with actual id
     if auto_id_used:
         if self.dialect == DIALECT_POSTGRES:
             new_id = cursor.fetchone()[0]
         else:
             new_id = cursor.lastrowid
         row[table.auto_id_col.col_name] = new_id
Ejemplo n.º 5
0
 def test_auto_id_used(self):
     foo = Foo.new(foo_id=12, i1=101, s1="xyz", d1=None)
     sql, values, auto_id_used = sqlgen.insert(Foo, foo, sqlgen.DIALECT_MYSQL, "%s")
     self.assertEquals("INSERT INTO foo (foo_id,i1,s1,d1) VALUES (%s,%s,%s,NULL)", sql)
     self.assertEquals([12, 101, "xyz"], values)
     self.assertFalse(auto_id_used)
Ejemplo n.º 6
0
 def test(self):
     foo = Foo.new(foo_id=4, i1=23, s1="pqr", d1=datetime.date(2006, 5, 4))
     sql, values, auto_id_used = sqlgen.insert(Foo, foo, sqlgen.DIALECT_SQLITE, "?")
     self.assertEquals("INSERT INTO foo (foo_id,i1,s1,d1) VALUES (?,?,?,?)", sql)
     self.assertEquals([4, 23, u"pqr", "2006-05-04"], values)
     self.assertFalse(auto_id_used)