"""Test for statement period serialization.""" from unittest.mock import patch from royalties.schemas.statement_period import StatementPeriodDetailSchema from royalties.tests.utils.factories import ExchangeRateFactory, StatementPeriodFactory @patch( 'royalties.models.statement_period.is_statement_period_query_optimization_ff_enabled' ) def test_statement_period_detail_schema_ff_disable(mock_feature): """Test statement period detail schema when FF is disabled.""" mock_feature.return_value = False statement_period = StatementPeriodFactory.build() ExchangeRateFactory.build(statement_period=statement_period) result = StatementPeriodDetailSchema().dump(statement_period) assert result == { 'statement_period_id': statement_period.statement_period_id, 'statement_period_name': statement_period.statement_period_name, 'statement_period_status': statement_period.statement_period_status, 'statement_month': statement_period.statement_month, 'statement_year': statement_period.statement_year, 'closed_date': statement_period.closed_date.strftime('%Y-%m-%d'), 'exchange_rates_delivered': True, } @patch( 'royalties.models.statement_period.is_statement_period_query_optimization_ff_enabled' ) def test_statement_period_detail_schema_ff_enabled(mock_feature): """Test statement period detail schema when FF is enabled.""" mock_feature.return_value = True statement_period = StatementPeriodFactory.build() ExchangeRateFactory.build(statement_period=statement_period) result = StatementPeriodDetailSchema().dump(statement_period) assert result == { 'statement_period_id': statement_period.statement_period_id, 'statement_period_name': statement_period.statement_period_name, 'statement_period_status': statement_period.statement_period_status, 'statement_month': statement_period.statement_month, 'statement_year': statement_period.statement_year, 'closed_date': statement_period.closed_date.strftime('%Y-%m-%d'), 'exchange_rates_delivered': False, }