"""Test for the logic of supplier.""" from unittest.mock import MagicMock import pytest from owsresponse import response from account.logic import supplier, vendor from account.models import supplier as supplier_model @pytest.fixture def fixture_suppliers_found(): """Fixture response with a vendor.""" success_payload = [{'vendor_id': 1, 'store_id': 1}, {'vendor_id': 1, 'store_id': 2}] return response.Response(success_payload) @pytest.fixture() def fixture_suppliers_set_success(): """Fixture response for setting supplier.""" success_payload = {'inserted_rows': 3} return response.Response(success_payload) @pytest.fixture def fixture_not_found_response(): """Fixture for a not found response.""" return response.create_not_found_response() def test_is_get_suppliers_true(monkeypatch, fixture_suppliers_found): """Test check for supplier where vendor exists.""" monkeypatch.setattr( supplier_model, 'get_default', MagicMock(return_value=fixture_suppliers_found) ) monkeypatch.setattr(vendor, 'is_vendor', MagicMock(return_value=True)) result = supplier.get_suppliers(1) assert result is fixture_suppliers_found def test_is_get_suppliers_false(monkeypatch, fixture_not_found_response): """Test check for suppliers where vendor is not valid.""" monkeypatch.setattr( supplier_model, 'get_default', MagicMock(return_value=fixture_not_found_response), ) monkeypatch.setattr(vendor, 'is_vendor', MagicMock(return_value=False)) result = supplier.get_suppliers(2) assert not result assert result.status == 404 def test_is_set_suppliers_true(monkeypatch, fixture_suppliers_set_success): """Insert suppliers into model.""" monkeypatch.setattr( supplier_model, 'set_default', MagicMock(return_value=fixture_suppliers_set_success), ) monkeypatch.setattr(vendor, 'is_vendor', MagicMock(return_value=True)) result = supplier.set_suppliers(1, [1, 2, 3]) assert result is fixture_suppliers_set_success def test_is_set_suppliers_fail(monkeypatch, fixture_suppliers_set_success): """Invalid vendor id fails insert request.""" monkeypatch.setattr( supplier_model, 'set_default', MagicMock(return_value=fixture_suppliers_set_success), ) monkeypatch.setattr(vendor, 'is_vendor', MagicMock(return_value=False)) result = supplier.set_suppliers(1, [1, 2, 3]) assert result.status == 404