"""Testutils module.""" from typing import Union from oto.response import Response from collaborator.models.ows import ows_permissions def assert_response(check: Response, expected: Union[Response, int]): """Assert that an object is the correct Response type. Args: check (Response): Item to check expected (Response or int): Full response or status code """ assert isinstance(check, Response), "Expected Response object" if isinstance(expected, Response): status_error = "Incorrect status code ({}), expected {}".format( check.status, expected.status ) assert check.status == expected.status, status_error message_error = "Incorrect Response message ({}), expected {}".format( check.message, expected.message ) assert check.message == expected.message, message_error else: status_error = "Incorrect status code ({}), expected {}".format( check.status, expected ) assert check.status == expected, status_error def mock_auth(mocker, resource_ids): """Mock resources for profile authorization.""" for func_name in [ "get_permissions", "get_admin_access_by_resource_type", ]: mocker.patch.object( ows_permissions, func_name, return_value={ "items": [ { "id": resource_id, } for resource_id in ( resource_ids if isinstance(resource_ids, list) else [resource_ids] ) ] }, )