def test_sum_inplace(self, conn): obj = sql.Composed([sql.SQL("foo ")]) obj += sql.Literal("bar") assert isinstance(obj, sql.Composed) assert noe(obj.as_string(conn)) == "foo 'bar'" obj = sql.Composed([sql.SQL("foo ")]) obj += sql.Composed([sql.Literal("bar")]) assert isinstance(obj, sql.Composed) assert noe(obj.as_string(conn)) == "foo 'bar'"
def test_join(self, conn): obj = sql.SQL(", ").join( [sql.Identifier("foo"), sql.SQL("bar"), sql.Literal(42)] ) assert isinstance(obj, sql.Composed) assert obj.as_string(conn) == '"foo", bar, 42' obj = sql.SQL(", ").join( sql.Composed( [sql.Identifier("foo"), sql.SQL("bar"), sql.Literal(42)] ) ) assert isinstance(obj, sql.Composed) assert obj.as_string(conn) == '"foo", bar, 42' obj = sql.SQL(", ").join([]) assert obj == sql.Composed([])
def test_iter(self): obj = sql.Composed([sql.SQL("foo"), sql.SQL("bar")]) it = iter(obj) i = next(it) assert i == sql.SQL("foo") i = next(it) assert i == sql.SQL("bar") with pytest.raises(StopIteration): next(it)
def test_auto_literal(self, conn): obj = sql.Composed(["fo'o", dt.date(2020, 1, 1)]) obj = obj.join(", ") assert isinstance(obj, sql.Composed) assert noe(obj.as_string(conn)) == "'fo''o', '2020-01-01'"
def test_join(self, conn): obj = sql.Composed([sql.Literal("foo"), sql.Identifier("b'ar")]) obj = obj.join(", ") assert isinstance(obj, sql.Composed) assert noe(obj.as_string(conn)) == "'foo', \"b'ar\""
def test_eq(self): L = [sql.Literal("foo"), sql.Identifier("b'ar")] l2 = [sql.Literal("foo"), sql.Literal("b'ar")] assert sql.Composed(L) == sql.Composed(list(L)) assert sql.Composed(L) != L assert sql.Composed(L) != sql.Composed(l2)
def test_repr(self): obj = sql.Composed([sql.Literal("foo"), sql.Identifier("b'ar")]) assert ( repr(obj) == """Composed([Literal('foo'), Identifier("b'ar")])""" ) assert str(obj) == repr(obj)