class DummyWriter(AgentWriter): """DummyWriter is a small fake writer used for tests. not thread-safe.""" def __init__(self, *args, **kwargs): # original call super(DummyWriter, self).__init__(*args, **kwargs) # dummy components self.spans = [] self.traces = [] self.services = {} self.json_encoder = JSONEncoder() self.msgpack_encoder = MsgpackEncoder() def write(self, spans=None, services=None): if spans: # the traces encoding expect a list of traces so we # put spans in a list like we do in the real execution path # with both encoders trace = [spans] self.json_encoder.encode_traces(trace) self.msgpack_encoder.encode_traces(trace) self.spans += spans self.traces += trace if services: self.json_encoder.encode_services(services) self.msgpack_encoder.encode_services(services) self.services.update(services) def pop(self): # dummy method s = self.spans self.spans = [] return s def pop_traces(self): # dummy method traces = self.traces self.traces = [] return traces def pop_services(self): # dummy method # Setting service info has been deprecated, we want to make sure nothing ever gets written here assert self.services == {} s = self.services self.services = {} return s
class DummyWriter(AgentWriter): """ # NB: This is coy fo DummyWriter class from ddtraces tests suite DummyWriter is a small fake writer used for tests. not thread-safe. """ def __init__(self): # original call super(DummyWriter, self).__init__() # dummy components self.spans = [] self.traces = [] self.services = {} self.json_encoder = JSONEncoder() self.msgpack_encoder = MsgpackEncoder() def write(self, spans=None, services=None): if spans: # the traces encoding expect a list of traces so we # put spans in a list like we do in the real execution path # with both encoders trace = [spans] self.json_encoder.encode_traces(trace) self.msgpack_encoder.encode_traces(trace) self.spans += spans self.traces += trace if services: self.json_encoder.encode_services(services) self.msgpack_encoder.encode_services(services) self.services.update(services) def pop(self): # dummy method s = self.spans self.spans = [] return s def pop_traces(self): # dummy method traces = self.traces self.traces = [] return traces def pop_services(self): # dummy method s = self.services self.services = {} return s
class DummyWriter(AgentWriter): """DummyWriter is a small fake writer used for tests. not thread-safe.""" def __init__(self, *args: typing.Any, **kwargs: typing.Any) -> None: super().__init__(*args, **kwargs) # Dummy components. self.spans: typing.List[Span] = [] self.traces: typing.List[Trace] = [] self.services: typing.Dict[str, Service] = {} self.json_encoder = JSONEncoder() self.msgpack_encoder = MsgpackEncoder() def write(self, spans: typing.List[Span] = None, services: typing.List[Service] = None) -> None: if spans: # The traces encoding expect a list of traces so we # put spans in a list like we do in the real execution path # with both encoders. trace = [spans] self.json_encoder.encode_traces(trace) self.msgpack_encoder.encode_traces(trace) self.spans += spans self.traces += trace if services: self.json_encoder.encode_services(services) self.msgpack_encoder.encode_services(services) self.services.update(services) def pop(self) -> typing.List[Span]: # Dummy method. spans = self.spans self.spans = [] return spans def pop_traces(self) -> typing.List[Trace]: # Dummy method. traces = self.traces self.traces = [] return traces def pop_services(self) -> typing.Dict[str, Service]: # Dummy method. # Setting service info has been deprecated, # we want to make sure nothing ever gets written here. assert self.services == {} services = self.services self.services = {} return services
class DummyWriter(AgentWriter): """ DummyWriter is a small fake writer used for tests. not thread-safe. """ def __init__(self): # original call super(DummyWriter, self).__init__() # dummy components self.spans = [] self.traces = [] self.services = {} self.json_encoder = JSONEncoder() self.msgpack_encoder = MsgpackEncoder() def write(self, spans=None, services=None): if spans: # the traces encoding expect a list of traces so we # put spans in a list like we do in the real execution path # with both encoders trace = [spans] self.json_encoder.encode_traces(trace) self.msgpack_encoder.encode_traces(trace) self.spans += spans self.traces += trace if services: self.json_encoder.encode_services(services) self.msgpack_encoder.encode_services(services) self.services.update(services) def pop(self): # dummy method s = self.spans self.spans = [] return s def pop_traces(self): # dummy method traces = self.traces self.traces = [] return traces def pop_services(self): # dummy method s = self.services self.services = {} return s