"""Tests for Product Orchard Pricing Tier logic.""" from unittest.mock import MagicMock from oto import response from pricing.logic import default_account_pricing_tier from pricing.models import default_account_pricing_tier \ as default_account_pricing_tier_model import pytest @pytest.fixture def fixture_default_account_pricing_tier(): """Fixture for single default account pricing tier.""" return response.Response({'orchard_pricing_tier_id': 3}) @pytest.fixture def fixture_get_default_account_pricing_tier_for_insert(): """Fixture for single default account pricing tier.""" return response.Response({}) @pytest.fixture def fixture_get_default_account_pricing_tier_for_update(): """Fixture for single default account pricing tier.""" return response.Response({'orchard_pricing_tier_id': 2}) def test_insert_account_with_orchard_pricing_tier( monkeypatch, fixture_get_default_account_pricing_tier_for_insert, fixture_default_account_pricing_tier): """Test update a account with default orchard pricing tier.""" monkeypatch.setattr( default_account_pricing_tier_model, 'get_by_account_and_pricing_family_id', MagicMock( return_value=fixture_get_default_account_pricing_tier_for_insert)) monkeypatch.setattr( default_account_pricing_tier_model, 'insert_account_with_default_pricing_tier', MagicMock(return_value=fixture_default_account_pricing_tier)) data = {'orchard_pricing_tier_id': 3} result = default_account_pricing_tier.\ set_default_account_pricing_tier('vendor', 1, 1, data) assert result assert result.message == fixture_default_account_pricing_tier.message def test_update_account_with_orchard_pricing_tier( monkeypatch, fixture_get_default_account_pricing_tier_for_update, fixture_default_account_pricing_tier): """Test update a account with default orchard pricing tier.""" monkeypatch.setattr( default_account_pricing_tier_model, 'get_by_account_and_pricing_family_id', MagicMock( return_value=fixture_get_default_account_pricing_tier_for_update)) monkeypatch.setattr( default_account_pricing_tier_model, 'soft_delete_default_account_pricing_tier', MagicMock(return_value=fixture_default_account_pricing_tier)) monkeypatch.setattr( default_account_pricing_tier_model, 'insert_account_with_default_pricing_tier', MagicMock(return_value=fixture_default_account_pricing_tier)) data = {'orchard_pricing_tier_id': 2} result = default_account_pricing_tier.\ set_default_account_pricing_tier('vendor', 1, 1, data) assert result assert result.message == fixture_default_account_pricing_tier.message def test_get_account_pricing_tier_by_pricing_family_id( monkeypatch, fixture_default_account_pricing_tier): """Test getting an default account pricing tier by pricing family.""" monkeypatch.setattr( default_account_pricing_tier_model, 'get_by_account_and_pricing_family_id', MagicMock(return_value=fixture_default_account_pricing_tier)) result = default_account_pricing_tier\ .get_default_account_pricing_tier('vendor', 1, 1) assert result assert result.message == fixture_default_account_pricing_tier.message def test_soft_delete_default_account_pricing_tier( monkeypatch, fixture_default_account_pricing_tier): """Test soft deletion of default account pricing tier by pricing family.""" monkeypatch.setattr( default_account_pricing_tier_model, 'soft_delete_default_account_pricing_tier', MagicMock(return_value=fixture_default_account_pricing_tier)) data = {'created_by': 'alw:123'} result = default_account_pricing_tier\ .soft_delete_default_account_pricing_tier('vendor', 1, 1, data) assert result assert result.message == fixture_default_account_pricing_tier.message