import pytest def test_orderitem_init(): from ordr3.models import OrderItem order = OrderItem(*list("ABCDEFGHIJKLMN")) assert order.id == "A" assert order.cas_description == "B" assert order.catalog_nr == "C" assert order.vendor == "D" assert order.category == "E" assert order.package_size == "F" assert order.unit_price == "G" assert order.amount == "H" assert order.currency == "I" assert order.account == "J" assert order.comment == "K" assert order.created_on == "L" assert order.created_by == "M" assert order.status == "N" def test_orderitem_repr(): from ordr3.models import OrderItem order = OrderItem(*list("ABCDEFGHIJK")) assert repr(order) == "" def test_orderitem_total_price(): from ordr3.models import OrderItem order = OrderItem(*list("ABCDEF"), 3, 4) assert order.total_price == 12 def test_orderitem_add_to_log_empty_log(): from ordr3.models import OrderItem, LogEntry order = OrderItem(*list("ABCDEFGHIJK")) log_entry = LogEntry(order, "critical", "me", "myid", "yesterday") order.add_to_log(log_entry) assert order.created_on == log_entry.date assert order.created_by == log_entry.by assert order.status == log_entry.status def test_orderitem_add_to_log_non_empty_log(): from ordr3.models import OrderItem, LogEntry order = OrderItem(*list("ABCDEFGHIJK")) log_entry_1 = LogEntry(order, "critical", "me", "myid", "yesterday") log_entry_2 = LogEntry(order, "normal", "you", "yourid", "today") order.add_to_log(log_entry_1) order.add_to_log(log_entry_2) assert order.created_on == log_entry_1.date assert order.created_by == log_entry_1.by assert order.status == log_entry_2.status def test_LogEntry_init(): from ordr3.models import LogEntry log_entry = LogEntry(1, "critical", "me", "myid", "yesterday") assert log_entry.order_id == 1 assert log_entry.status == "critical" assert log_entry.by == "me" assert log_entry.user_id == "myid" assert log_entry.date == "yesterday" def test_user_init(): from ordr3.models import User user = User(*list("ABCDEFG")) assert user.id == "A" assert user.username == "B" assert user.first_name == "C" assert user.last_name == "D" assert user.email == "E" assert user.password == "F" assert user.role == "G" def test_user_principal(): from ordr3.models import User user = User(*list("ABCDEFG")) assert user.principal == "user:A" @pytest.mark.parametrize( "role_str,roles", [ ("NEW", ["role:new"]), ("USER", ["role:user"]), ("PURCHASER", ["role:user", "role:purchaser"]), ("ADMIN", ["role:user", "role:purchaser", "role:admin"]), ("INACTIVE", ["role:inactive"]), ], ) def test_user_principals(role_str, roles): from ordr3.models import User, UserRole user = User(*list("ABCDEF"), UserRole[role_str]) assert user.principals == ["user:A"] + roles @pytest.mark.parametrize( "role_str,expected", [ ("NEW", False), ("USER", True), ("PURCHASER", True), ("ADMIN", True), ("INACTIVE", False), ], ) def test_user_is_active(role_str, expected): from ordr3.models import User, UserRole user = User(*list("ABCDEF"), UserRole[role_str]) assert user.is_active == expected def test_user_repr(): from ordr3.models import User user = User(*list("ABCDEFG")) assert repr(user) == "" def test_user_role_rincipal(): from ordr3.models import UserRole assert UserRole.INACTIVE.principal == "role:inactive"