示例#1
0
def test_filter_contents():
    r = recorder.Recorder()

    def filter_one_on_two(events):
        return [event for i, event in enumerate(events) if i % 2 == 0]

    r.add_event_filter(event.Event, filter_one_on_two)
    r.push_events([event.Event(), event.Event(), event.Event()])
    assert len(r.events[event.Event]) == 2
示例#2
0
def test_reset():
    r = recorder.Recorder()
    r.push_event(event.Event())
    assert len(r.events[event.Event]) == 1
    assert len(r.reset()[event.Event]) == 1
    assert len(r.events[event.Event]) == 0
    assert len(r.reset()[event.Event]) == 0
    r.push_event(event.Event())
    assert len(r.events[event.Event]) == 1
    assert len(r.reset()[event.Event]) == 1
示例#3
0
def test_filter_remove():
    r = recorder.Recorder()

    def filter_all(events):
        return []

    r.add_event_filter(event.Event, filter_all)
    r.push_event(event.Event())
    assert len(r.events[event.Event]) == 0

    r.remove_event_filter(event.Event, filter_all)
    r.push_event(event.Event())
    assert len(r.events[event.Event]) == 1
示例#4
0
def test_before_flush():
    x = {}

    def call_me():
        x["OK"] = True

    r = recorder.Recorder()
    s = scheduler.Scheduler(r, [exporter.NullExporter()], before_flush=call_me)
    r.push_events([event.Event()] * 10)
    s.flush()
    assert x["OK"]
示例#5
0
def test_before_flush_failure(caplog):
    def call_me():
        raise Exception("LOL")

    r = recorder.Recorder()
    s = scheduler.Scheduler(r, [exporter.NullExporter()], before_flush=call_me)
    r.push_events([event.Event()] * 10)
    s.flush()
    assert caplog.record_tuples == [
        (("ddtrace.profiling.scheduler", logging.ERROR, "Scheduler before_flush hook failed"))
    ]
示例#6
0
 def snapshot():
     return [[event.Event()]]
def test_exporter_failure():
    r = recorder.Recorder()
    exp = _FailExporter()
    s = scheduler.Scheduler(r, [exp])
    r.push_events([event.Event()] * 10)
    s.flush()