"""Test for a supplier model.""" import pytest from account.models import supplier from tests.unit import db_operations SUCCESS_PAYLOAD_VENDOR_1 = [ {'vendor_id': 1, 'store_id': 1}, {'vendor_id': 1, 'store_id': 2}, ] SUCCESS_PAYLOAD_VENDOR_2 = [{'vendor_id': 2, 'store_id': 2}] @pytest.fixture def db_fixture(): """Set up the physical_supplychain table.""" db_operations.create_tables() db_operations.seed_physical_supplychain_table() def test_get_default_success_vendor_1(db_fixture): """Test succeeds when supplier is vendor_id: 1.""" response = supplier.get_default(1) assert response.message == SUCCESS_PAYLOAD_VENDOR_1 def test_get_default_success_vendor_2(db_fixture): """Test succeeds when supplier is vendor_id: 2.""" response = supplier.get_default(2) assert response.message == SUCCESS_PAYLOAD_VENDOR_2 def test_get_default_fails_for_non_existent(db_fixture): """Test fails when supplier vendor_id: 100 does not exist.""" response = supplier.get_default(100) assert response.status == 404 def test_delete_default_success_vendor_1(db_fixture): """Test succeeds when supplier is vendor_id: 1.""" response = supplier.delete_default(1) assert response.message == {'removed_rows': 2} def test_delete_default_success_vendor_2(db_fixture): """Test succeeds when supplier is vendor_id: 2.""" response = supplier.delete_default(2) assert response.message == {'removed_rows': 1} def test_delete_default_fails_for_non_existent(db_fixture): """Test fails when supplier vendor_id: 100 does not exist.""" response = supplier.delete_default(100) assert response.status == 200 def test_set_default_success_vendor_1(db_fixture): """Test succeeds when supplier is vendor_id: 1.""" response = supplier.set_default(1, [1, 2]) assert response.message == {'inserted_rows': 2} def test_set_default_success_vendor_2(db_fixture): """Test succeeds when supplier is vendor_id: 2.""" response = supplier.set_default(2, [1]) assert response.message == {'inserted_rows': 1} def test_set_default_success_vendor_none(db_fixture): """Test succeeds when supplier is vendor_id: 2.""" response = supplier.set_default(2, []) assert response.message == {'inserted_rows': 0}