You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.7 KiB
78 lines
1.7 KiB
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]
|
|
|