def test_Neq_None(self): self.assertEqual(base_compiler.compile(Neq('hey', None)), ('? IS NOT NULL', ('hey',))) self.assertEqual(base_compiler.compile(Neq(None, 'hey')), ('NULL IS NOT ?', ('hey',))) self.assertEqual(base_compiler.compile(Neq(None, None)), ('NULL IS NOT NULL', ()))
def test_Join(self): class Foo(object): __sql_table__ = 'something' id = Property() sql, args = base_compiler.compile(Join(Foo, Eq(Foo.id, 10))) self.assertEqual(sql, 'JOIN something AS a ON a.id = ?') self.assertEqual(args, (10,))
def test_Table(self): class Foo(object): __sql_table__ = 'foo' sql, args = base_compiler.compile(Table(Foo)) self.assertEqual(sql, 'foo AS a')
def test_And_Or(self): self.assertEqual(base_compiler.compile(And(1, Or(2, 3), Or(4, And(5, 6)))), ('(? AND (? OR ?) AND (? OR (? AND ?)))', (1,2,3,4,5,6)))
def test_Or(self): self.assertEqual(base_compiler.compile(Or('hey', 'ho', 'ha')), ('(? OR ? OR ?)', ('hey', 'ho', 'ha')))
def test_And(self): self.assertEqual(base_compiler.compile(And('hey', 'ho', 'ha')), ('(? AND ? AND ?)', ('hey', 'ho', 'ha')))
def test_Lte(self): self.assertEqual(base_compiler.compile(Lte(1, 2)), ('? <= ?', (1, 2)))
def test_Gte(self): self.assertEqual(base_compiler.compile(Gte(1, 2)), ('? >= ?', (1, 2)))
def test_Comparison(self): c = Comparison('a', 'b') c.op = 'hey' self.assertEqual(base_compiler.compile(c), ('? hey ?', ('a', 'b')))
def test_None(self): self.assertEqual(base_compiler.compile(None), ('NULL', ()))
def test_Property(self): class Foo(object): __sql_table__ = 'hey' id = Property() self.assertEqual(base_compiler.compile(Foo.id), ('a.id', ()))
def test_bool(self): self.assertEqual(base_compiler.compile(True), ('?', (True,)))
def test_datetime(self): self.assertEqual(base_compiler.compile(datetime(2001, 1, 1)), ('?', (datetime(2001, 1, 1),)))
def test_int(self): self.assertEqual(base_compiler.compile(10), ('?', (10,)))
def test_unicode(self): self.assertEqual(base_compiler.compile(u'a'), ('?', (u'a',)))
def test_str(self): self.assertEqual(base_compiler.compile('a'), ('?', ('a',)))