def __init__(self, name, parent_logger=None, enable_service_recovery=False): BaseService.__init__(self, name, parent_logger=parent_logger, enable_service_recovery=enable_service_recovery) self.analyzer = ResourceAnalyzer("resource-analyzer", parent_logger=self.log) self.timing_sorter = ResourceTimingSorter("timing-sorter", parent_logger=self.log) self.queue = None
def test_resource_timing_sorter(): mock_queue = MockQueueService("mock-queue") # mock queue uri = "mock://github/events-quick-interval" # create mock resource # create resource timings = ResourceTimings() resource = Resource(uri, timings, json=True) # get mock response session = mock_requests.create_mock_session() response = session.get(uri) resource.timings.update(response, resource.headers) # modify interval timing directly and make it trigger # in the future resource.timings.interval = 2000 resource.timings.update_timestamp resource.timings.update_interval_timestamp() sorter = ResourceTimingSorter("test-sorter") sorter.sort(resource, ResourceStates.WaitingForInterval, mock_queue) def work(): for n in range(25): sorter.sort(resource, ResourceStates.WaitingForInterval, mock_queue) gevent.sleep(.10) work() # sometimes depending on the test runner or machine, things will be slow. # rather than assert on very specific timings, just ensure the counters # were hit assert mock_queue.f1000_calls >= 1 assert mock_queue.f500_calls >= 1 assert mock_queue.f250_calls >= 1 assert mock_queue.f50_calls >= 1 assert mock_queue.fa_calls >= 1
def __init__(self, name, parent_logger=None, enable_service_recovery=False): BaseService.__init__(self, name, parent_logger=parent_logger, enable_service_recovery=enable_service_recovery) self.analyzer = ResourceAnalyzer("resource-analyzer", parent_logger=self.log) self.timing_sorter = ResourceTimingSorter("timing-sorter", parent_logger=self.log) self.queue = None self.sleep_time = .05 # 50 (.05), 250 (.25), 500 (.5), 1000 (1)