Exemple #1
0
    def test_transfer_data(self):
        dispatcher = dispatch.Dispatcher(_TEST_HANDLERS_DIR, None)
        request = mock.MockRequest(connection=mock.MockConn(''))
        request.ws_resource = '/origin_check'
        request.ws_protocol = 'p1'

        dispatcher.transfer_data(request)
        self.assertEqual('origin_check_wsh.py is called for /origin_check, p1',
                         request.connection.written_data())

        request = mock.MockRequest(connection=mock.MockConn(''))
        request.ws_resource = '/sub/plain'
        request.ws_protocol = None
        dispatcher.transfer_data(request)
        self.assertEqual('sub/plain_wsh.py is called for /sub/plain, None',
                         request.connection.written_data())

        request = mock.MockRequest(connection=mock.MockConn(''))
        request.ws_resource = '/sub/plain?'
        request.ws_protocol = None
        dispatcher.transfer_data(request)
        self.assertEqual('sub/plain_wsh.py is called for /sub/plain?, None',
                         request.connection.written_data())

        request = mock.MockRequest(connection=mock.MockConn(''))
        request.ws_resource = '/sub/plain?q=v'
        request.ws_protocol = None
        dispatcher.transfer_data(request)
        self.assertEqual('sub/plain_wsh.py is called for /sub/plain?q=v, None',
                         request.connection.written_data())
Exemple #2
0
def _create_request(request_def):
    conn = mock.MockConn('')
    conn.local_addr = ('0.0.0.0', request_def[0])
    return mock.MockRequest(
            uri=request_def[1],
            headers_in=request_def[2],
            connection=conn)
Exemple #3
0
    def test_do_extra_handshake(self):
        dispatcher = dispatch.Dispatcher(_TEST_HANDLERS_DIR, None)
        request = mock.MockRequest()
        request.ws_resource = '/origin_check'
        request.ws_origin = 'http://example.com'
        dispatcher.do_extra_handshake(request)  # Must not raise exception.

        request.ws_origin = 'http://bad.example.com'
        self.assertRaises(Exception, dispatcher.do_extra_handshake, request)
Exemple #4
0
 def test_transfer_data_handler_exception(self):
     dispatcher = dispatch.Dispatcher(_TEST_HANDLERS_DIR, None)
     request = mock.MockRequest(connection=mock.MockConn(''))
     request.ws_resource = '/sub/exception_in_transfer'
     request.ws_protocol = 'p3'
     try:
         dispatcher.transfer_data(request)
         self.fail()
     except Exception, e:
         self.failUnless(str(e).find('Intentional') != -1)
 def test_transfer_data_no_handler(self):
     dispatcher = dispatch.Dispatcher(_TEST_HANDLERS_DIR, None)
     for resource in ['/blank', '/sub/non_callable',
                      '/sub/no_wsh_at_the_end', '/does/not/exist']:
         request = mock.MockRequest(connection=mock.MockConn(''))
         request.ws_resource = resource
         request.ws_protocol = 'p2'
         try:
             dispatcher.transfer_data(request)
             self.fail()
         except dispatch.DispatchError, e:
             self.failUnless(str(e).find('No handler') != -1)
         except Exception:
             self.fail()
def _create_mock_request():
    headers = {
        'Host': 'server.example.com',
        'Upgrade': 'websocket',
        'Connection': 'Upgrade',
        'Sec-WebSocket-Key': 'dGhlIHNhbXBsZSBub25jZQ==',
        'Sec-WebSocket-Version': '13',
        'Origin': 'http://example.com'
    }
    request = mock.MockRequest(uri='/echo',
                               headers_in=headers,
                               connection=_MockMuxConnection())
    request.ws_stream = Stream(request, options=StreamOptions())
    request.mux = True
    request.mux_extensions = []
    request.mux_quota = 8 * 1024
    return request
def _create_blocking_request():
    return mock.MockRequest(connection=mock.MockBlockingConn())
def _create_request(read_data):
    return mock.MockRequest(connection=mock.MockConn(read_data))
Exemple #9
0
def _create_request(request_def):
    conn = mock.MockConn('')
    return mock.MockRequest(method=request_def.method,
                            uri=request_def.uri,
                            headers_in=request_def.headers,
                            connection=conn)