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 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)
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
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