Example #1
0
    def reads_back_a_written_value(self):
        '''
        This test uses low-level sockets to check if the Server is respecting the protocol when setting a value from memcached.
        '''
        host = '127.0.0.1'
        port = 22322

        request_bytes = binascii.unhexlify(b'80010003080000000000000e0000000000000000000000000000000000000000666f6f626172')
        response_bytes = binascii.unhexlify(b'81010000000000000000000000000000000000000000012b')

        server = Server(io_loop=self.io_loop)
        server.listen(port, address=host)

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        stream = iostream.IOStream(s, io_loop=self.io_loop)

        def start_test():
            stream.connect((host, port), send_request)

        def send_request():
            stream.write(request_bytes, write_finished)

        def write_finished(*args, **kwargs):
            stream.read_bytes(len(response_bytes), receive_response)

        def receive_response(data):
            self.assertEqual(self.response_without_cas(data), self.response_without_cas(response_bytes))
            stream.close()
            self.stop()

        self.io_loop.add_callback(start_test)

        self.wait()
Example #2
0
    def assert_response_matches_request(self, request_bytes, response_bytes):
        host = "127.0.0.1"
        port = 22322

        server = Server(io_loop=self.io_loop)
        server.set_handler("text")
        server.listen(port, address=host)

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        stream = iostream.IOStream(s, io_loop=self.io_loop)

        def start_test():
            stream.connect((host, port), send_request)

        def send_request():
            stream.write(request_bytes, write_finished)

        def write_finished(*args, **kwargs):
            stream.read_bytes(len(response_bytes), receive_response)

        def receive_response(data):
            self.assertEqual(data, response_bytes)
            stream.close()
            self.stop()

        self.io_loop.add_callback(start_test)

        self.wait()
Example #3
0
    def passes_request_to_handler(self):
        server = Server(io_loop=self.io_loop)
        handler = MagicMock(spec=BinaryProtocolHandler)
        stream = MagicMock(iostream.IOStream)

        stream.closed.side_effect = [False, True]

        with patch.object(server, 'handler', handler):
            server.backend = 'some backend'
            server.handle_stream(stream, 'some address')

            handler.process.assert_called_with(stream, 'some backend', callback=ANY)
Example #4
0
    def passes_request_to_handler(self):
        server = Server(io_loop=self.io_loop)
        handler = MagicMock(spec=BinaryProtocolHandler)
        stream = MagicMock(iostream.IOStream)

        stream.closed.side_effect = [False, True]

        with patch.object(server, 'handler', handler):
            server.backend = 'some backend'
            server.handle_stream(stream, 'some address')

            handler.process.assert_called_with(stream,
                                               'some backend',
                                               callback=ANY)
Example #5
0
    def assert_response_matches_request(self, request_bytes, response_bytes):
        host = '127.0.0.1'
        port = 22322

        server = Server(io_loop=self.io_loop)
        server.set_handler('text')
        server.listen(port, address=host)

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        stream = iostream.IOStream(s, io_loop=self.io_loop)

        def start_test():
            stream.connect((host, port), send_request)

        def send_request():
            stream.write(request_bytes, write_finished)

        def write_finished(*args, **kwargs):
            stream.read_bytes(len(response_bytes), receive_response)

        def receive_response(data):
            self.assertEqual(data, response_bytes)
            stream.close()
            self.stop()

        self.io_loop.add_callback(start_test)

        self.wait()
Example #6
0
    def reads_back_a_written_value(self):
        '''
        This test uses low-level sockets to check if the Server is respecting the protocol when setting a value from memcached.
        '''
        host = '127.0.0.1'
        port = 22322

        request_bytes = binascii.unhexlify(
            b'80010003080000000000000e0000000000000000000000000000000000000000666f6f626172'
        )
        response_bytes = binascii.unhexlify(
            b'81010000000000000000000000000000000000000000012b')

        server = Server(io_loop=self.io_loop)
        server.listen(port, address=host)

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        stream = iostream.IOStream(s, io_loop=self.io_loop)

        def start_test():
            stream.connect((host, port), send_request)

        def send_request():
            stream.write(request_bytes, write_finished)

        def write_finished(*args, **kwargs):
            stream.read_bytes(len(response_bytes), receive_response)

        def receive_response(data):
            self.assertEqual(self.response_without_cas(data),
                             self.response_without_cas(response_bytes))
            stream.close()
            self.stop()

        self.io_loop.add_callback(start_test)

        self.wait()
Example #7
0
 def passes_io_loop_to_protocol(self):
     server = Server(io_loop=self.io_loop)
     self.assertIs(server.io_loop, server.handler.io_loop)
Example #8
0
 def starts_with_binary_protocol_handler_by_default(self):
     server = Server(io_loop=self.io_loop)
     self.assertIsInstance(server.handler, BinaryProtocolHandler)
Example #9
0
 def passes_io_loop_to_new_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('text')
     self.assertIs(server.io_loop, server.handler.io_loop)
Example #10
0
 def sets_a_binary_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('binary')
     self.assertIsInstance(server.handler, BinaryProtocolHandler)
Example #11
0
 def sets_a_text_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('text')
     self.assertIsInstance(server.handler, TextProtocolHandler)
Example #12
0
 def sets_a_text_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('text')
     self.assertIsInstance(server.handler, TextProtocolHandler)
Example #13
0
 def passes_io_loop_to_new_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('text')
     self.assertIs(server.io_loop, server.handler.io_loop)
Example #14
0
 def sets_a_binary_handler(self):
     server = Server(io_loop=self.io_loop)
     server.set_handler('binary')
     self.assertIsInstance(server.handler, BinaryProtocolHandler)