コード例 #1
0
ファイル: test_channel.py プロジェクト: chrmorais/zato
    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')
コード例 #2
0
ファイル: test_channel.py プロジェクト: lulzzz/zato
    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, ''))
コード例 #3
0
ファイル: test_channel.py プロジェクト: chrmorais/zato
    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)