"""Unit tests for reference_payment_entity endpoints.""" from unittest import mock import pytest from flask import testing as flask_testing @pytest.mark.parametrize( ('standalone_check_result', 'pdp_check_result', 'expected_status'), [ pytest.param(True, None, 200, id='standalone check'), pytest.param(None, True, 200, id='pdp check, authorized'), pytest.param(None, False, 403, id='pdp check, unauthorized'), ], ) @mock.patch('abacus_contract.blueprints.reference_payment_entity.authorization') @mock.patch('abacus_contract.blueprints.reference_payment_entity.flask_request') def test_get_reference_payment_entity_unauthorized( mock_flask_request: mock.MagicMock, mock_authorization: mock.MagicMock, standalone_check_result: bool | None, pdp_check_result: bool | None, expected_status: int, fixture_client: flask_testing.FlaskClient, ) -> None: """Test GET /reference-payment-entities/ with unauthorized access.""" mock_flask_request.verify_rules_access_standalone.return_value = ( standalone_check_result ) mock_authorization.pdp_authorize_resource.return_value = pdp_check_result res = fixture_client.get('/reference-payment-entity/1') assert res.status_code == expected_status if not standalone_check_result: mock_authorization.pdp_authorize_resource.assert_called_once_with( resource_id=0, resource_type='reference_payment_entity', )