"""Tests for account logic.""" from unittest.mock import MagicMock import pytest from contracts import response from contracts.logic import account from contracts.models import ows_account @pytest.fixture def fixture_get_vendor_by_subaccount(): """Fixture for vendor by subaccount.""" return response.Response({'message': 25}) def test_get_vendor_by_subaccount(monkeypatch, fixture_get_vendor_by_subaccount): """Test for getting vendor info by subaccount.""" expected_subaccount_id = 10 monkeypatch.setattr( ows_account, 'get_vendor_id_by_subaccount_id', MagicMock(return_value=fixture_get_vendor_by_subaccount), ) result = account.get_vendor_by_subaccount(expected_subaccount_id) ows_account.get_vendor_id_by_subaccount_id.assert_called_with( expected_subaccount_id ) assert result == fixture_get_vendor_by_subaccount def test_get_vendor_by_subaccount_failed(monkeypatch, fixture_get_vendor_by_subaccount): """Test for getting vendor info by subaccount.""" expected_subaccount_id = 10 monkeypatch.setattr( ows_account, 'get_vendor_id_by_subaccount_id', MagicMock( return_value=response.create_error_response(code='code', message='message') ), ) result = account.get_vendor_by_subaccount(expected_subaccount_id) ows_account.get_vendor_id_by_subaccount_id.assert_called_with( expected_subaccount_id ) assert result.status == 400