import pytest @pytest.fixture() def example_orders(): from datetime import datetime from ordr3.models import OrderItem, OrderCategory, OrderStatus return [ OrderItem( 1, "Ethanol", "1-23", "VWR", OrderCategory.SOLVENT, "5 l", 20.0, 2, "EUR", "DFG", "urgent", datetime(2020, 2, 3, 15, 14, 13), "me", OrderStatus.OPEN, ), OrderItem( 2, "Gloves", "12-3", "Carl Roth", OrderCategory.DISPOSABLE, "100 St.", 40.0, 5, "USD", "BMBF", "no comment", datetime(2020, 2, 4, 15, 14, 13), "you", OrderStatus.APPROVAL, ), ] def test_sql_repo_add(session, example_orders): from ordr3.repo import SqlAlchemyRepository from ordr3.models import OrderItem repo = SqlAlchemyRepository(session) repo.add(example_orders[0]) session.flush() order = session.query(OrderItem).first() assert order == example_orders[0] def test_sql_repo_get(session, example_orders): from ordr3.repo import SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add(example_orders[0]) repo.add(example_orders[1]) session.flush() assert example_orders[1] == repo.get(2) def test_sql_repo_list(session, example_orders): from ordr3.repo import SqlAlchemyRepository earlier, later = example_orders repo = SqlAlchemyRepository(session) repo.add(earlier) repo.add(later) session.flush() assert repo.list() == [later, earlier]