"""Tests for Territories Helper.""" from unittest.mock import MagicMock from oto import response from pricing.logic import territories_helper from pricing.models import ows_territories import pytest @pytest.fixture def fixture_territory_list_CS(): """Fixture for a list of territories with CS.""" return response.Response( { 'items': [ { 'territory_code_a2': 'CS' } ] }) @pytest.fixture def fixture_territory_list_FR(): """Fixture for a complemented territory list response.""" return response.Response( { 'items': [ { 'territory_code_a2': 'FR' } ] }) @pytest.fixture def fixture_territory_list_FR_and_CS(): """Fixture for an all territory list.""" return response.Response( { 'items': [ { 'territory_code_a2': 'FR' }, { 'territory_code_a2': 'CS' } ] }) def test_convert_territories_to_positive_orchard_positive_list( monkeypatch, fixture_territory_list_CS): """Test converting territories to Orchard standard for positive list.""" monkeypatch.setattr( ows_territories, 'convert_to_orchard_territories', MagicMock(return_value=fixture_territory_list_CS)) item = { 'territories': ['RS'], 'territory_list_include': True, 'applies_worldwide': False } result = territories_helper.convert_territories_to_positive_orchard(item) assert result == ['CS'] def test_get_all_orchard_territories( monkeypatch, fixture_territory_list_FR_and_CS): """Test getting all territories for Orchard standard.""" monkeypatch.setattr( ows_territories, 'get_all_orchard_territories', MagicMock(return_value=fixture_territory_list_FR_and_CS)) result = territories_helper.get_all_orchard_territories() assert result == ['FR', 'CS'] def test_convert_territories_to_iso( monkeypatch, fixture_territory_list_FR): """Test converting territories to ISO standard.""" monkeypatch.setattr( ows_territories, 'convert_to_iso_territories', MagicMock(return_value=fixture_territory_list_FR)) result = territories_helper.convert_territories_to_iso(str(['FR'])) assert result == ['FR'] def test_convert_territories_to_positive_orchard_negative_list( monkeypatch, fixture_territory_list_CS, fixture_territory_list_FR): """Test converting territories to Orchard standard for negative list.""" monkeypatch.setattr( ows_territories, 'convert_to_orchard_territories', MagicMock(return_value=fixture_territory_list_CS)) monkeypatch.setattr( ows_territories, 'complement_orchard_territories', MagicMock(return_value=fixture_territory_list_FR)) item = { 'territories': ['RS'], 'territory_list_include': False, 'applies_worldwide': False } result = territories_helper.\ convert_territories_to_positive_orchard(item) assert result == ['FR'] def test_convert_territories_to_positive_orchard_world( monkeypatch, fixture_territory_list_FR_and_CS): """Test converting territories to Orchard standard for worldwide.""" monkeypatch.setattr( ows_territories, 'get_all_orchard_territories', MagicMock(return_value=fixture_territory_list_FR_and_CS)) item = { 'territories': [], 'territory_list_include': False, 'applies_worldwide': True } result = territories_helper.convert_territories_to_positive_orchard(item) assert result == ['FR', 'CS'] def test_get_all_iso_territories(monkeypatch, fixture_territory_list_CS): """Test get_all_iso_territories works.""" monkeypatch.setattr( ows_territories, 'get_all_iso_territories', MagicMock(return_value=fixture_territory_list_CS)) result = territories_helper.get_all_iso_territories() assert result == ['CS'] def test_convert_territories_to_positive_orchard(monkeypatch): """Test it handles items without territory_list_include.""" item = { 'territories': ['BE', 'FR'] } monkeypatch.setattr( territories_helper, '_convert_ows_territories_to_positive', MagicMock(return_value=['BE', 'FR'])) result = territories_helper.convert_territories_to_positive_orchard( item) assert result == ['BE', 'FR'] def test_convert_territories_to_positive_iso( monkeypatch, fixture_territory_list_CS, fixture_territory_list_FR): """Test converting territories to ISO standard for negative list.""" monkeypatch.setattr( ows_territories, 'complement_iso_territories', MagicMock(return_value=fixture_territory_list_FR)) territories = ['CS'] result = territories_helper.convert_territories_to_positive_iso( territories) assert result == ['FR']