def test_init(self): self.assertRaises(TypeError, sql.Tree, '', sql.Node, sql.Node) self.assertRaises(TypeError, sql.Tree, sql.Node, '', sql.Node) self.assertRaises(TypeError, sql.Tree, sql.Node, sql.Node, '') self.assertEqual(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c')).tree, 'a') self.assertEqual(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c')).left, 'b') self.assertEqual(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c')).right, 'c')
def test_and_or_bracket(self): a = sql.Tree(sql.TREE.AND, sql.Str('a'), sql.Str('b')) self.assertEqual(a, 'a and b') self.assertEqual(a.and_(sql.Str('c')), 'a and b and c') self.assertEqual(a.or_(sql.Str('c')), 'a and b or c') self.assertEqual(a.bracket(), '( a and b )')
def test_sql(self): self.assertEqual(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c')), 'b a c') self.assertEqual(sql.Tree(sql.Str(''), sql.Str('b'), sql.Str('c')), 'b') self.assertEqual(sql.Tree(sql.Str('a'), sql.Str(''), sql.Str('c')), 'c') self.assertEqual(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('')), 'b')
def test_bool(self): self.assertTrue(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c'))) self.assertFalse(sql.Tree(sql.Str(''), sql.Str('b'), sql.Str('c'))) self.assertTrue(sql.Tree(sql.Str('a'), sql.Str(''), sql.Str('c'))) self.assertTrue(sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('')))
def test_iter(self): t, l, r = sql.Tree(sql.Str('a'), sql.Str('b'), sql.Str('c')) self.assertEqual(t, 'a') self.assertEqual(l, 'b') self.assertEqual(r, 'c')