Ejemplo n.º 1
0
    def setUp(self):
        self.__fake_socket = FakeSocket()
        self.__fake_run_state = FakeRunState()
        self.__last_request = None

        parser = LineRequestParser(10)
        request_stream = RequestStream(self.__fake_socket, parser.parse_request, max_buffer_size=10,
                                       max_request_size=10)

        self.__fake_handler = ConnectionProcessor(request_stream, self.execute_request, self.__fake_run_state, 5.0)
        self.__fake_time = 0.0
Ejemplo n.º 2
0
    def setUp(self):
        self.__fake_socket = FakeSocket()
        self.__fake_run_state = FakeRunState()

        parser = LineRequestParser(100, eof_as_eol=True)
        self.__request_stream = RequestStream(self.__fake_socket, parser.parse_request, max_buffer_size=100,
                                              max_request_size=100)
Ejemplo n.º 3
0
    def test_basic_use(self):
        # We use a FakeRunState for testing just so we do not accidentally sleep.
        run_state = FakeRunState()

        self.assertTrue(run_state.is_running())
        run_state.sleep_but_awaken_if_stopped(1.0)
        self.assertEquals(run_state.total_times_slept, 1)
        run_state.stop()
        self.assertFalse(run_state.is_running())
    def setUp(self):
        super(TestRequestStream, self).setUp()
        self.__fake_socket = FakeSocket()
        self.__fake_run_state = FakeRunState()

        parser = LineRequestParser(10)
        self.__request_stream = RequestStream(self.__fake_socket,
                                              parser.parse_request,
                                              max_buffer_size=10,
                                              max_request_size=10)
Ejemplo n.º 5
0
    def test_basic_use(self):
        # We use a FakeRunState for testing just so we do not accidentally sleep.
        run_state = FakeRunState()

        self.assertTrue(run_state.is_running())
        run_state.sleep_but_awaken_if_stopped(1.0)
        self.assertEquals(run_state.total_times_slept, 1)
        run_state.stop()
        self.assertFalse(run_state.is_running())
Ejemplo n.º 6
0
    def test_callbacks(self):
        self.called = False

        def on_stop():
            self.called = True

        run_state = FakeRunState()
        run_state.register_on_stop_callback(on_stop)
        run_state.stop()

        self.assertTrue(self.called)

        # Make sure it is immediately invoked if already stopped.
        self.called = False
        run_state.register_on_stop_callback(on_stop)
        self.assertTrue(self.called)
Ejemplo n.º 7
0
    def test_callbacks(self):
        self.called = False

        def on_stop():
            self.called = True

        run_state = FakeRunState()
        run_state.register_on_stop_callback(on_stop)
        run_state.stop()

        self.assertTrue(self.called)

        # Make sure it is immediately invoked if already stopped.
        self.called = False
        run_state.register_on_stop_callback(on_stop)
        self.assertTrue(self.called)
Ejemplo n.º 8
0
    def test_sleeping_already_stopped(self):
        run_state = FakeRunState()

        run_state.stop()
        run_state.sleep_but_awaken_if_stopped(1.0)
        self.assertEquals(run_state.total_times_slept, 0)
class TestConnectionHandler(ScalyrTestCase):
    def setUp(self):
        super(TestConnectionHandler, self).setUp()
        self.__fake_socket = FakeSocket()
        self.__fake_run_state = FakeRunState()
        self.__last_request = None

        parser = LineRequestParser(10)
        request_stream = RequestStream(self.__fake_socket,
                                       parser.parse_request,
                                       max_buffer_size=10,
                                       max_request_size=10)

        self.__fake_handler = ConnectionProcessor(request_stream,
                                                  self.execute_request,
                                                  self.__fake_run_state, 5.0)
        self.__fake_time = 0.0

    def test_basic_case(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

    def test_multiple_requests(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

        self.advance_time(3.0)
        self.__fake_socket.add_input('2nd there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, '2nd there\n')

        self.advance_time(3.0)
        self.assertTrue(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def test_inactivity_error(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

        self.advance_time(3.0)
        self.assertTrue(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

        self.advance_time(3.0)
        self.assertRaises(ConnectionIdleTooLong, self.run_single_cycle)

    def test_run_state_done(self):
        self.__fake_socket.add_input('Hi there\nOk\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')
        self.__fake_run_state.stop()

        self.assertFalse(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def test_connection_closed(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')
        self.__fake_socket.close()

        self.assertFalse(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def execute_request(self, request):
        self.__last_request = request

    def run_single_cycle(self):
        self.__last_request = None
        return self.__fake_handler.run_single_cycle(
            current_time=self.__fake_time)

    def advance_time(self, delta):
        self.__fake_time += delta
Ejemplo n.º 10
0
    def test_sleeping_already_stopped(self):
        run_state = FakeRunState()

        run_state.stop()
        run_state.sleep_but_awaken_if_stopped(1.0)
        self.assertEquals(run_state.total_times_slept, 0)
class TestConnectionHandler(ScalyrTestCase):
    def setUp(self):
        self.__fake_socket = FakeSocket()
        self.__fake_run_state = FakeRunState()
        self.__last_request = None

        parser = LineRequestParser(10)
        request_stream = RequestStream(self.__fake_socket, parser.parse_request, max_buffer_size=10,
                                       max_request_size=10)

        self.__fake_handler = ConnectionProcessor(request_stream, self.execute_request, self.__fake_run_state, 5.0)
        self.__fake_time = 0.0

    def test_basic_case(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

    def test_multiple_requests(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

        self.advance_time(3.0)
        self.__fake_socket.add_input('2nd there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, '2nd there\n')

        self.advance_time(3.0)
        self.assertTrue(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def test_inactivity_error(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')

        self.advance_time(3.0)
        self.assertTrue(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

        self.advance_time(3.0)
        self.assertRaises(ConnectionIdleTooLong, self.run_single_cycle)

    def test_run_state_done(self):
        self.__fake_socket.add_input('Hi there\nOk\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')
        self.__fake_run_state.stop()

        self.assertFalse(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def test_connection_closed(self):
        self.__fake_socket.add_input('Hi there\n')
        self.assertTrue(self.run_single_cycle())
        self.assertEquals(self.__last_request, 'Hi there\n')
        self.__fake_socket.close()

        self.assertFalse(self.run_single_cycle())
        self.assertIsNone(self.__last_request)

    def execute_request(self, request):
        self.__last_request = request

    def run_single_cycle(self):
        self.__last_request = None
        return self.__fake_handler.run_single_cycle(current_time=self.__fake_time)

    def advance_time(self, delta):
        self.__fake_time += delta