def test_soap_quotes(self): rd = channel.RequestDispatcher() soap_action = '"aaa"' soap_action = rd._handle_quotes_soap_action(soap_action) self.assertEquals(soap_action, 'aaa') soap_action = 'aaa"' soap_action = rd._handle_quotes_soap_action(soap_action) self.assertEquals(soap_action, 'aaa"') soap_action = '"aaa' soap_action = rd._handle_quotes_soap_action(soap_action) self.assertEquals(soap_action, '"aaa') soap_action = 'aaa' soap_action = rd._handle_quotes_soap_action(soap_action) self.assertEquals(soap_action, 'aaa')
def test_dispatch_no_url_data(self): rd = channel.RequestDispatcher(DummyURLData(False, Bunch(audit_enabled=False))) rd.security = DummySecurity() cid = uuid4().hex ts = arrow.now() path_info = uuid4().hex wsgi_input = StringIO() wsgi_input.write('zzz') wsgi_environ = {'PATH_INFO':path_info, 'wsgi.input': wsgi_input} response = rd.dispatch(cid, ts, wsgi_environ, None) self.assertEquals(wsgi_environ['zato.http.response.status'], '404 Not Found') self.assertEquals( response, 'CID:`{}` Unknown URL:`{}` or SOAP action:`{}`'.format(cid, path_info, ''))
def test_check_security_request_handler_handle_are_called(self): class DummyRequestHandler(object): def __init__(self): self.cid = None self.url_match = {ZATO_NONE: ZATO_NONE} self.channel_item = None self.wsgi_environ = {ZATO_NONE: ZATO_NONE} self.payload = None self.worker_store = None self.simple_io_config = None def handle(self, cid, url_match, channel_item, wsgi_environ, payload, worker_store, simple_io_config, post_data): self.cid = cid self.url_match = url_match self.channel_item = channel_item self.wsgi_environ = wsgi_environ self.payload = payload self.worker_store = worker_store self.simple_io_config = simple_io_config cid = uuid4().hex req_timestamp = uuid4().hex path_info = uuid4().hex soap_action = uuid4().hex worker_store = uuid4().hex simple_io_config = uuid4().hex match_return_value = Bunch() match_return_value.is_active = True match_return_value.transport = uuid4().hex match_return_value.data_format = uuid4().hex channel_item_return_value = Bunch() channel_item_return_value.is_active = True channel_item_return_value.transport = uuid4().hex channel_item_return_value.data_format = uuid4().hex channel_item_return_value.match_target = uuid4().hex channel_item_return_value.audit_enabled = False payload = uuid4().hex wsgi_input = StringIO() wsgi_input.write(payload) wsgi_input.seek(0) wsgi_environ = { 'PATH_INFO': path_info, 'HTTP_SOAPACTION': soap_action, 'wsgi.input': wsgi_input, 'zato.http.response.headers': {}, } ud = DummyURLData(match_return_value, channel_item_return_value) ud.url_sec[channel_item_return_value.match_target] = Bunch( sec_def=ZATO_NONE) rd = channel.RequestDispatcher(ud) rd.simple_io_config = simple_io_config rd.request_handler = DummyRequestHandler() rd.dispatch(cid, req_timestamp, wsgi_environ, worker_store) eq_(ud.cid, cid) eq_(ud.channel_item, channel_item_return_value) eq_(ud.path_info, path_info) eq_(ud.payload, payload) eq_(sorted(ud.wsgi_environ.items()), sorted(wsgi_environ.items())) eq_(rd.request_handler.cid, cid) eq_(sorted(rd.request_handler.url_match.items()), sorted(match_return_value.items())) eq_(rd.request_handler.channel_item, channel_item_return_value) eq_(sorted(rd.request_handler.wsgi_environ.items()), sorted(wsgi_environ.items())) eq_(rd.request_handler.payload, payload) eq_(rd.request_handler.worker_store, worker_store) eq_(rd.request_handler.simple_io_config, simple_io_config)