"""Test for the flask executor.""" from unittest.mock import MagicMock from _pytest.monkeypatch import MonkeyPatch import flask from flask import g from flask_executor import Executor from owsrequest import flask_request from owsrequest import request monkeypatch = MonkeyPatch() test_token = 'Bearer jwt' def _make_request(request_item): """Make a request as part of a multi-thread series of requests. Args: request_item (dict): containing a function and parameters. Returns: Result of calling the given function with the given parameters. """ return request_item.get('function_to_call')(*request_item.get('params')) def test_flask_executor(): """Test for flask_executor.""" sender = 'ows-users' receiver = 'ows-account' app = flask.Flask(sender) executor = Executor(app) request_list = [ {'function_to_call': flask_request.process, 'params': [app.name, 'qa', 'get', receiver, '/test', {'correlation_id': 'test'}]} ] monkeypatch.setattr( flask_request, 'next_correlation_id', MagicMock(return_value='abcd123')) monkeypatch.setattr(request, 'process', MagicMock( spec=request.process, return_value={})) with app.test_request_context(''): g.request_context = mockRequestContext() list(executor.map(_make_request, request_list)) assert request.process.call_args[1]['authorization_header'] == test_token class mockRequestContext: """Mock request context.""" def __init__(self): """Initialize class. Args: self (mockRequestContext): self """ self.authorization = test_token