"""Tests for Currency model.""" from decimal import Decimal from unittest.mock import patch from sqlalchemy.exc import SQLAlchemyError from ows_accounting.models import currency_exchange_rates def test_get_currency_by_id(db_fixture): """Test getting currency exchange rate""" expected_response = { 'id': 1, 'period_id': 102, 'currency_from_id': 4, 'currency_to_id': 1, 'exchange_rate': Decimal('2.7') } response = currency_exchange_rates.get_currency_exchange_rate( period_id=102, currency_from_id=4) assert response.status assert response.message == expected_response def test_get_currency_by_id_not_found(db_fixture): """Test getting no currency.""" response = currency_exchange_rates.get_currency_exchange_rate( period_id=10, currency_to_id=6, currency_from_id=1) assert response.status == 404 @patch('ows_accounting.utils.mysql.db_session', side_effect=SQLAlchemyError()) def test_get_currency_by_id_exception(monkeypatch): """Test getting currency with exception.""" response = currency_exchange_rates.get_currency_exchange_rate( period_id=102, currency_from_id=4) assert response.status == 500