co3/tests/test_database.py

55 lines
1.3 KiB
Python

from co3.components import Relation
from co3.databases import SQLDatabase
from setups import vegetables as veg
db = None
def test_database_init():
global db
db = SQLDatabase('sqlite://')
assert True
def test_database_recreate():
db.recreate(veg.vegetable_schema)
assert True
def test_database_insert():
tomato = veg.Tomato('t1', 5)
veg.vegetable_mapper.collect(tomato)
# test instance as arg
tom_comp = veg.vegetable_mapper.get_attr_comp(tomato)
inserts = veg.vegetable_mapper.collector.collect_inserts()
tom_inserts = inserts.get(tom_comp)
assert tom_inserts is not None
with db.engine.connect() as connection:
assert db.manager.insert(
connection,
tom_comp,
tom_inserts,
) is not None
def test_database_insert_many():
tomato = veg.Tomato('t2', 5)
veg.vegetable_mapper.collect(tomato)
with db.engine.connect() as connection:
assert db.manager.insert_many(
connection,
veg.vegetable_mapper.collector.inserts,
) is not None
def test_database_access():
agg_table = veg.vegetable_mapper.compose(veg.Tomato)
with db.engine.connect() as connection:
assert db.accessor.select(
connection,
agg_table,
) is not None