def test_add_request_flushes_every_request(send, tracked_request):
    AgentContext.build()

    manager = RequestManager()
    manager.add_request(tracked_request)

    assert send.call_count == 1
    (command, ), kwargs = send.call_args
    assert kwargs == {}

    message = command.message()
    assert message == {
        "BatchCommand": {
            "commands": [
                {
                    "StartRequest": {
                        "request_id": REQUEST_ID,
                        "timestamp": START_TIME_STR,
                    }
                },
                {
                    "FinishRequest": {
                        "request_id": REQUEST_ID,
                        "timestamp": END_TIME_STR,
                    }
                },
            ]
        }
    }

    assert not manager.request_buffer._requests  # buffer is empty
 def finish(self):
     logger.debug('Stopping request: %s', self.req_id)
     if self.end_time is None:
         self.end_time = datetime.utcnow()
     RequestManager.instance().add_request(self)
     if self.is_real_request():
         Samplers.ensure_running()
     self.release()
def test_add_request_handles_only_real_requests(send, tracked_request):
    AgentContext.build()

    tracked_request.real_request = False

    manager = RequestManager()
    manager.add_request(tracked_request)

    send.assert_not_called()

    assert not manager.request_buffer._requests  # buffer is empty
Пример #4
0
    def finish(self):
        logger.debug('Stopping request: %s', self.req_id)
        if self.end_time is None:
            self.end_time = datetime.utcnow()
        if self.is_real_request():
            self.tag('mem_delta', Memory.get_delta(self.memory_start))
            RequestManager.instance().add_request(self)
            Samplers.ensure_running()

        # This can fail if the Tracked Request was created directly, not through instance()
        try:
            self.release()
        except:
            pass