"""Tests for OwsMoneyhub Client.""" from unittest.mock import patch from moneyhub.connectors.ows_moneyhub import OwsMoneyhub from moneyhub.constants.constants import StatementAttachmentType from moneyhub.constants.constants import VatCategory STATEMENT_PERIOD_ID = 42 ACCOUNT_ID = 1 @patch('moneyhub.connectors.ows_service.OwsService.post') def test_backfill_vat_summary(mock_owsservice): """Test to fetch backfill vat summary.""" filtered_data = [ { 'account_id': 24601, 'contract_id': 10001, 'vat_category': VatCategory.GROSS_REVENUE, 'payee_currency_code': 'USD', 'vat_currency_code': 'USD', 'base_amount_payee_currency': 0.001406240000, 'vat_rate': None, 'vat_amount_payee_currency': None, 'vat_amount_vat_currency': None, 'net_amount_payee_currency': 0.001406240000, } ] path = f'/ledger-vat-summary/statement-period/{STATEMENT_PERIOD_ID}/backfill' mock_owsservice.return_value = [] OwsMoneyhub.backfill_vat_summary(STATEMENT_PERIOD_ID, filtered_data) mock_owsservice.assert_called_with(path, filtered_data) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_create_statement_attachments(mock_owsservice): """Test to create statement attachments.""" path = f'/statement-attachment/statement-period/{STATEMENT_PERIOD_ID}' mock_owsservice.return_value = [] OwsMoneyhub.create_statement_attachments(STATEMENT_PERIOD_ID) mock_owsservice.assert_called_with(path) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_regenerate_custom_reports(mock_owsservice): """Test to regenerate custom reports.""" path = f'/reports/custom/statement-period/{STATEMENT_PERIOD_ID}/regenerate' mock_owsservice.return_value = [] OwsMoneyhub.regenerate_custom_reports(STATEMENT_PERIOD_ID) mock_owsservice.assert_called_with(path) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_regenerate_statement_attachments(mock_owsservice): """Test to regenerate statement attachments.""" body = { 'account_id': ACCOUNT_ID, 'statement_attachment_type': StatementAttachmentType.DISTRIBUTION_FEE_INVOICE } path = f'/statement-attachment/statement-period/{STATEMENT_PERIOD_ID}/regenerate' mock_owsservice.return_value = [] OwsMoneyhub.regenerate_statement_attachments(STATEMENT_PERIOD_ID, body) mock_owsservice.assert_called_with(path, body) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_sync_revenue_analysis(mock_owsservice): """Test to sync revenue analysis.""" body = { 'tables': ['a_table', 'some_other_table'] } path = '/revenue-analysis/sync' mock_owsservice.return_value = {} OwsMoneyhub.sync_revenue_analysis(body) mock_owsservice.assert_called_with(path, body) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_trigger_attachment_generation(mock_owsservice): """Test to trigger attachment generation.""" path = f'/statement-attachment/statement-period/{STATEMENT_PERIOD_ID}/generate' params = {'account_id': ACCOUNT_ID} mock_owsservice.return_value = {} OwsMoneyhub.trigger_attachment_generation(STATEMENT_PERIOD_ID, ACCOUNT_ID) mock_owsservice.assert_called_with(path, params=params) @patch('moneyhub.connectors.ows_service.OwsService.post') def test_trigger_attachment_generation_without_account_id(mock_owsservice): """Test to trigger attachment generation.""" path = f'/statement-attachment/statement-period/{STATEMENT_PERIOD_ID}/generate' mock_owsservice.return_value = {} OwsMoneyhub.trigger_attachment_generation(STATEMENT_PERIOD_ID) mock_owsservice.assert_called_with(path, params=None)