"""Test run_controller_contract handlers.""" from unittest.mock import patch from owsresponse import response from royalties.constants.constants import CONTRACT_TYPES @patch('royalties.blueprints.run_controller_contract.logic') def test_create_run_controller_contract(mock_logic, fixture_client): """Test POST /run-controller/contract.""" post_body = { 'contract_id': 123, 'contract_type': CONTRACT_TYPES.DISTRIBUTION, 'run_controller_id': 4, } mock_logic.create_run_controller_contract.return_value = response.Response( message='created', status=201 ) res = fixture_client.post('/run-controller/contract', json=post_body) assert res.status_code == 201 mock_logic.create_run_controller_contract.assert_called_once_with(**post_body) @patch('royalties.blueprints.run_controller_contract.logic') def test_get_run_controller_contracts_dataloaded(mock_logic, fixture_client): """Test POST '/run-controllers/contracts/dataloader.""" contract_ids = [1, 2, 3] mock_logic.get_contracts_run_controllers_with_dataload_format.return_value = ( response.Response(message='created', status=200) ) res = fixture_client.post( '/run-controllers/contracts/dataloader', json=contract_ids ) assert res.status_code == 200 mock_logic.get_contracts_run_controllers_with_dataload_format.assert_called_once_with( contract_ids ) @patch('royalties.blueprints.run_controller_contract.logic') def test_update_run_controller_contracts(mock_logic, fixture_client): """Test PUT /run-controller-contracts.""" put_body = {'contract_id': 123, 'run_controller_id': 4} mock_logic.update_run_controller_contract.return_value = response.Response( message='updated', status=200 ) res = fixture_client.put('/run-controller-contracts', json=put_body) assert res.status_code == 200 mock_logic.update_run_controller_contract.assert_called_once_with(**put_body)