|
|
@ -1,11 +1,11 @@ |
|
|
|
import pytest |
|
|
|
import pytest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_order_data(): |
|
|
|
def example_order_data(): |
|
|
|
from datetime import datetime |
|
|
|
from datetime import datetime |
|
|
|
|
|
|
|
|
|
|
|
from ordr3.models import OrderStatus, OrderCategory |
|
|
|
from ordr3.models import OrderCategory, OrderStatus |
|
|
|
|
|
|
|
|
|
|
|
return [ |
|
|
|
return [ |
|
|
|
( |
|
|
|
( |
|
|
@ -43,14 +43,14 @@ def example_order_data(): |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_orders(example_order_data): |
|
|
|
def example_orders(example_order_data): |
|
|
|
from ordr3.models import OrderItem |
|
|
|
from ordr3.models import OrderItem |
|
|
|
|
|
|
|
|
|
|
|
return [OrderItem(*data) for data in example_order_data] |
|
|
|
return [OrderItem(*data) for data in example_order_data] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_consumables(example_order_data): |
|
|
|
def example_consumables(example_order_data): |
|
|
|
from datetime import datetime, timedelta |
|
|
|
from datetime import datetime, timedelta |
|
|
|
|
|
|
|
|
|
|
@ -67,7 +67,7 @@ def example_consumables(example_order_data): |
|
|
|
return consumables |
|
|
|
return consumables |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_users(): |
|
|
|
def example_users(): |
|
|
|
from ordr3.models import User, UserRole |
|
|
|
from ordr3.models import User, UserRole |
|
|
|
|
|
|
|
|
|
|
@ -77,7 +77,7 @@ def example_users(): |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_tokens(): |
|
|
|
def example_tokens(): |
|
|
|
from datetime import datetime, timedelta |
|
|
|
from datetime import datetime, timedelta |
|
|
|
|
|
|
|
|
|
|
@ -92,7 +92,7 @@ def example_tokens(): |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture() |
|
|
|
@pytest.fixture |
|
|
|
def example_vendors(): |
|
|
|
def example_vendors(): |
|
|
|
from ordr3.models import Vendor |
|
|
|
from ordr3.models import Vendor |
|
|
|
|
|
|
|
|
|
|
@ -105,8 +105,8 @@ def example_vendors(): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_add_order(session, example_orders): |
|
|
|
def test_sql_repo_add_order(session, example_orders): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import OrderItem |
|
|
|
from ordr3.models import OrderItem |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_order(example_orders[0]) |
|
|
|
repo.add_order(example_orders[0]) |
|
|
@ -118,8 +118,8 @@ def test_sql_repo_add_order(session, example_orders): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_delete_order(session, example_orders): |
|
|
|
def test_sql_repo_delete_order(session, example_orders): |
|
|
|
|
|
|
|
from ordr3.models import LogEntry, OrderItem, OrderStatus, User |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
from ordr3.models import User, LogEntry, OrderItem, OrderStatus |
|
|
|
|
|
|
|
from ordr3.services import create_log_entry |
|
|
|
from ordr3.services import create_log_entry |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
@ -162,13 +162,12 @@ def test_sql_repo_get_order_raises_exception(session, example_orders): |
|
|
|
def test_sql_list_consumable_candidates(session, example_consumables): |
|
|
|
def test_sql_list_consumable_candidates(session, example_consumables): |
|
|
|
from datetime import datetime, timedelta |
|
|
|
from datetime import datetime, timedelta |
|
|
|
|
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import OrderStatus |
|
|
|
from ordr3.models import OrderStatus |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
for example in example_consumables: |
|
|
|
for example in example_consumables: |
|
|
|
repo.add_order(example) |
|
|
|
repo.add_order(example) |
|
|
|
print(example.id, example.created_on) |
|
|
|
|
|
|
|
session.flush() |
|
|
|
session.flush() |
|
|
|
|
|
|
|
|
|
|
|
limit_date = datetime.utcnow() - timedelta(days=2 * 365) |
|
|
|
limit_date = datetime.utcnow() - timedelta(days=2 * 365) |
|
|
@ -181,8 +180,8 @@ def test_sql_list_consumable_candidates(session, example_consumables): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_add_user(session, example_users): |
|
|
|
def test_sql_repo_add_user(session, example_users): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import User |
|
|
|
from ordr3.models import User |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_user(example_users[0]) |
|
|
|
repo.add_user(example_users[0]) |
|
|
@ -194,8 +193,8 @@ def test_sql_repo_add_user(session, example_users): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_delte_user(session, example_users): |
|
|
|
def test_sql_repo_delte_user(session, example_users): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import User |
|
|
|
from ordr3.models import User |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_user(example_users[0]) |
|
|
|
repo.add_user(example_users[0]) |
|
|
@ -274,8 +273,8 @@ def test_sql_repo_get_user_by_email_exception(session, example_users): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_count_new_users(session, example_users): |
|
|
|
def test_sql_repo_count_new_users(session, example_users): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import UserRole |
|
|
|
from ordr3.models import UserRole |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
example_users[0].role = UserRole.NEW |
|
|
|
example_users[0].role = UserRole.NEW |
|
|
@ -286,9 +285,9 @@ def test_sql_repo_count_new_users(session, example_users): |
|
|
|
assert repo.count_new_users() == 1 |
|
|
|
assert repo.count_new_users() == 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_search_vendor(session, example_users): |
|
|
|
def test_sql_search_vendor(session, example_users): # noqa: ARG001 |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import Vendor |
|
|
|
from ordr3.models import Vendor |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
entry = Vendor("sa", "Sigma Aldrich") |
|
|
|
entry = Vendor("sa", "Sigma Aldrich") |
|
|
@ -300,8 +299,8 @@ def test_sql_search_vendor(session, example_users): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_get_vendor_aggregates(session, example_vendors): |
|
|
|
def test_sql_get_vendor_aggregates(session, example_vendors): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import VendorAggregate |
|
|
|
from ordr3.models import VendorAggregate |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
session.add_all(example_vendors) |
|
|
|
session.add_all(example_vendors) |
|
|
@ -324,8 +323,8 @@ def test_sql_get_vendor_aggregates_raises_error(session): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_update_vendors(session, example_vendors): |
|
|
|
def test_sql_update_vendors(session, example_vendors): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import Vendor, VendorAggregate |
|
|
|
from ordr3.models import Vendor, VendorAggregate |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
session.add_all(example_vendors) |
|
|
|
session.add_all(example_vendors) |
|
|
@ -346,8 +345,8 @@ def test_sql_update_vendors(session, example_vendors): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_add_reset_token(session, example_tokens): |
|
|
|
def test_sql_repo_add_reset_token(session, example_tokens): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
@ -359,8 +358,8 @@ def test_sql_repo_add_reset_token(session, example_tokens): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_repo_delete_reset_token(session, example_tokens): |
|
|
|
def test_sql_repo_delete_reset_token(session, example_tokens): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
@ -398,8 +397,8 @@ def test_sql_repo_get_reset_token_raises_exception(session, example_tokens): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_sql_clear_stale_reset_tokens(session, example_tokens): |
|
|
|
def test_sql_clear_stale_reset_tokens(session, example_tokens): |
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
from ordr3.models import PasswordResetToken |
|
|
|
|
|
|
|
from ordr3.repo import SqlAlchemyRepository |
|
|
|
|
|
|
|
|
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo = SqlAlchemyRepository(session) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
|
repo.add_reset_token(example_tokens[0]) |
|
|
|