"""Worksheet correction handler tests.""" from unittest.mock import patch from owsresponse import response from abacus_worksheet.schemas.worksheet_correction import ( WorksheetCorrectionDetailSchema, ) from tests.utils.factories import WorksheetCorrectionFactory @patch('abacus_worksheet.blueprints.worksheet_correction.bulk_create') def test_create_bulk(mock_bulk_create, mock_worksheet_correction_data, fixture_client): """Test bulk create worksheet corrections.""" mock_correction = WorksheetCorrectionFactory.create( **mock_worksheet_correction_data ) mock_response = WorksheetCorrectionDetailSchema().dump(mock_correction) mock_bulk_create.return_value = response.Response( message=[mock_response], status=201 ) res = fixture_client.post( '/worksheet-correction/bulk', json=[mock_worksheet_correction_data] ) mock_correction_data = mock_worksheet_correction_data mock_correction_data.update( { 'gross_revenue': str(mock_correction_data['gross_revenue']), 'distribution_fee': str(mock_correction_data['distribution_fee']), 'net_revenue': str(mock_correction_data['net_revenue']), } ) mock_bulk_create.assert_called_once_with([mock_correction_data]) assert res.status_code == 201 assert res.json[0] == mock_response @patch('abacus_worksheet.blueprints.worksheet_correction.bulk_create') def test_create_bulk_alt( mock_bulk_create, mock_worksheet_correction_data, fixture_client ): """Test bulk create worksheet corrections.""" mock_correction = WorksheetCorrectionFactory.create( **mock_worksheet_correction_data ) mock_response = WorksheetCorrectionDetailSchema().dump(mock_correction) mock_bulk_create.return_value = response.Response( message=[mock_response], status=201 ) res = fixture_client.post( '/worksheet-correction/bulk', json=[mock_worksheet_correction_data] ) mock_correction_data = mock_worksheet_correction_data mock_correction_data.update( { 'gross_revenue': str(mock_correction_data['gross_revenue']), 'distribution_fee': str(mock_correction_data['distribution_fee']), 'net_revenue': str(mock_correction_data['net_revenue']), } ) mock_bulk_create.assert_called_once_with([mock_correction_data]) assert res.status_code == 201 assert res.json[0] == mock_response @patch( 'abacus_worksheet.blueprints.worksheet_correction' '.get_unapplied_worksheet_corrections' ) def test_get_unapplied_worksheet_corrections( mock_logic, mock_worksheet_correction_data, fixture_client ): """Test to get unapplied worksheet corrections.""" correction = WorksheetCorrectionDetailSchema().dump(mock_worksheet_correction_data) mock_response = {'items': [correction], 'total_count': 1} mock_logic.return_value = response.Response(message=mock_response, status=200) res = fixture_client.get( '/worksheet-correction/statement-period/1/royalty_reversal/unapplied?limit=10&offset=0' ) assert res.status_code == 200 assert res.json == mock_response mock_logic.assert_called_once()