async def test__get_keys(): ids = list(range(1, 10)) query = file_table.update() \ .values(id=None) \ .where(file_table.c.id.in_(ids)) compiled = query.compile(dialect=connection._dialect) connection._get_keys(compiled)
async def test__get_keys_with_custom_column_type(): query = (file_type_table.insert().values(type=FileTypes.PDF, name='abc')) compiled = query.compile(dialect=connection._dialect) params = dict(connection._get_keys(compiled)) assert not isinstance(params['type'], FileTypes) assert isinstance(params['type'], str) assert isinstance(params['name'], str) assert params['type'] == 'PDF' # stringified assert params['name'] == 'abc' query = (sa.select([file_type_table ]).where(file_type_table.c.type == FileTypes.TEXT)) compiled = query.compile(dialect=connection._dialect) params = dict(connection._get_keys(compiled)) assert not isinstance(params['type_1'], FileTypes) assert isinstance(params['type_1'], str) assert params['type_1'] == 'TEXT' # stringified
async def test__replace_keys(): ids = list(range(1, 10)) query = file_table.update() \ .values(id=None) \ .where(file_table.c.id.in_(ids)) compiled = query.compile(dialect=connection._dialect) params = connection._get_keys(compiled) new_query = connection._replace_keys(compiled.string, params) assert new_query[0] == 'UPDATE meows SET id=$1 WHERE meows.id IN ' \ '($2, $3, $4, $5, $6, $7, $8, $9, $10)' assert new_query[1] == [None, 1, 2, 3, 4, 5, 6, 7, 8, 9]