62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
import pytest
|
|
|
|
def test_table_existence(config, database):
|
|
|
|
class DBIntrospectionTableExistence(database.Model):
|
|
|
|
id = database.UUID(constraints=[database.PrimaryKey()], default=database.Call('gen_random_uuid'))
|
|
a = database.Integer()
|
|
b = database.CharacterVarying()
|
|
|
|
DBIntrospectionTableExistence.create_table().execute()
|
|
|
|
rows = database.introspection.Tables.select().where(
|
|
database.introspection.Tables.table_name == DBIntrospectionTableExistence.__sql_name__()
|
|
).execute().fetchall()
|
|
|
|
assert len(rows) == 1
|
|
assert rows[0].table_catalog == config['database']['dbname']
|
|
assert rows[0].table_name == DBIntrospectionTableExistence.__sql_name__()
|
|
|
|
def test_column_existence(config, database):
|
|
|
|
class DBIntrospectionColumnExistence(database.Model):
|
|
|
|
id = database.UUID(constraints=[database.PrimaryKey()], default=database.Call('gen_random_uuid'))
|
|
a = database.Integer()
|
|
b = database.CharacterVarying()
|
|
|
|
DBIntrospectionColumnExistence.create_table().execute()
|
|
|
|
rows = database.introspection.Columns.select().where(
|
|
database.introspection.Columns.table_name == DBIntrospectionColumnExistence.__sql_name__()
|
|
).execute().fetchall()
|
|
|
|
all_column_names = [row.column_name for row in rows]
|
|
|
|
assert len(all_column_names) == 3
|
|
assert 'id' in all_column_names
|
|
assert 'a' in all_column_names
|
|
assert 'b' in all_column_names
|
|
|
|
def test_column_types(config, database):
|
|
|
|
class DBIntrospectionColumnType(database.Model):
|
|
|
|
id = database.UUID(constraints=[database.PrimaryKey()], default=database.Call('gen_random_uuid'))
|
|
a = database.Integer()
|
|
b = database.CharacterVarying()
|
|
|
|
DBIntrospectionColumnType.create_table().execute()
|
|
|
|
rows = database.introspection.Columns.select().where(
|
|
database.introspection.Columns.table_name == DBIntrospectionColumnType.__sql_name__()
|
|
).execute().fetchall()
|
|
|
|
for row in rows:
|
|
|
|
assert row.column_name in DBIntrospectionColumnType.__columns__
|
|
|
|
column = getattr(DBIntrospectionColumnType, row.column_name)
|
|
assert row.data_type == column.__type__
|