def test_parse_typed_field_list_more_complex(): sql = ''' IN a int = 5, IN b text default 'abc'::text, IN c double precision = 9.99", OUT d double precision[] ''' tokens = sqlparse.parse(sql)[0].flatten() args = list(parse_typed_field_list(tokens)) assert [arg.name for arg in args] == ['a', 'b', 'c', 'd'] assert [arg.mode for arg in args] == ['IN', 'IN', 'IN', 'OUT']
def test_parse_typed_field_list_no_arg_names(): sql = 'int, double precision, text' tokens = sqlparse.parse(sql)[0].flatten() args = list(parse_typed_field_list(tokens)) assert(len(args) == 3)
def test_parse_typed_field_list_simple(): sql = 'a int, b int[][], c double precision, d text' tokens = sqlparse.parse(sql)[0].flatten() args = list(parse_typed_field_list(tokens)) assert [arg.name for arg in args] == ['a', 'b', 'c', 'd']