Exemplo n.º 1
0
    def handle(self):
        """
        Handle a request
        """

        # deserialize the request
        request_msg = pickle.loads(self.request.recv(settings.PACKET_MAX_SIZE))

        # process the request
        response_msg = RequestProcessor.process(
            self.server.document_repository,
            request_msg)

        # serialize and send the response
        self.request.sendall(pickle.dumps(response_msg))
class TestRequestProcessor(TestCase):
    def setUp(self):
        self.rp = RequestProcessor(file_reader=self.create_fake_file_reader())

    def test_process(self):
        req = Mock(["get_url"])
        req.get_url.return_value = "/fake_file_name.html"
        res = self.rp.process(req)
        self.assertEqual(res.get_content(), "fake file content!")

    def create_fake_file_reader(self):
        file_reader = Mock(["read_file"])

        def fake_read_file(fname):
            if fname == "fake_file_name.html":
                return "fake file content!"
            raise Exception("No such file")

        file_reader.read_file.side_effect = fake_read_file
        return file_reader