"""Integration tests.""" from moneyhub.constants.constants import StatementAttachmentStatus from tests.integration.conftest import insert_mock_account from tests.integration.conftest import insert_mock_account_statement_period from tests.integration.conftest import insert_mock_contract from tests.integration.conftest import insert_mock_reference_payment_entity from tests.integration.conftest import insert_mock_reference_sap_profit_center from tests.integration.conftest import insert_mock_reference_signing_entity from tests.integration.conftest import insert_mock_statement_attachment from tests.integration.conftest import insert_mock_statement_period from tests.integration.conftest import insert_mock_statement_period_payment_entity from tests.integration.utils.ows_moneyhub_api_client import MoneyhubAPIClient def test_get_hello(): """Get Hello Endpoint.""" response = MoneyhubAPIClient.get_hello() response_body = response.json() assert response.status_code == 200, f'\nReason: {response.reason}\nURL: {response.url}' assert 'status' in response_body assert 'ok' in response_body['status'] def test_get_statement_attachments(fresh_integration_db): """GET /statement-attachments.""" mock_account = insert_mock_account() insert_mock_reference_payment_entity() insert_mock_reference_sap_profit_center() insert_mock_reference_signing_entity() insert_mock_contract() mock_statement_period = insert_mock_statement_period() insert_mock_statement_period_payment_entity(mock_statement_period['statement_period_id']) mock_statement_attachment = insert_mock_statement_attachment() response_get = MoneyhubAPIClient.get_statement_attachments( mock_account['account_id'], mock_statement_period['statement_period_id'] ) print(response_get.text) assert response_get.status_code == 200 results = response_get.json()[0] assert results['file_location'] == mock_statement_attachment['file_location'] assert results['invoice_number'] == mock_statement_attachment['invoice_number'] assert results['statement_attachment_type'] == mock_statement_attachment[ 'statement_attachment_type'] def test_post_statement_attachments(fresh_integration_db): """POST /statement-attachments.""" mock_account = insert_mock_account() insert_mock_reference_payment_entity() insert_mock_reference_sap_profit_center() insert_mock_reference_signing_entity() insert_mock_contract() mock_statement_period = insert_mock_statement_period() insert_mock_account_statement_period() insert_mock_statement_period_payment_entity(mock_statement_period['statement_period_id']) response_post = MoneyhubAPIClient.post_statement_attachment( mock_statement_period['statement_period_id'] ) print(response_post.text) assert response_post.status_code == 201 assert len(response_post.json()) > 0 response_get = MoneyhubAPIClient.get_statement_attachments( mock_account['account_id'], mock_statement_period['statement_period_id'] ) assert response_get.status_code == 200 assert len(response_get.json()) > 0 assert response_get.json() == response_post.json() def test_put_statement_attachments(fresh_integration_db): """PUT /statement-attachments.""" mock_account = insert_mock_account() insert_mock_reference_payment_entity() insert_mock_reference_sap_profit_center() insert_mock_reference_signing_entity() insert_mock_contract() mock_statement_period = insert_mock_statement_period() mock_statement_attachment = insert_mock_statement_attachment() statement_attachment_id = mock_statement_attachment['statement_attachment_id'] put_body = {'statement_attachment_status': StatementAttachmentStatus.COMPLETE} response_put = MoneyhubAPIClient.put_statement_attachment(statement_attachment_id, put_body) print(response_put.text) assert response_put.status_code == 200 assert response_put.json()['statement_attachment_status'] == \ put_body['statement_attachment_status'] response_get = MoneyhubAPIClient.get_statement_attachments( mock_account['account_id'], mock_statement_period['statement_period_id'] ) print(response_get.text) assert response_get.status_code == 200 assert response_get.json()[0]['statement_attachment_status'] == \ put_body['statement_attachment_status']