def METHOD_NAME(mocker, spies):
    send_event_spy, start_session_event_spy, end_session_event_spy = spies
    class DoubleArgExtractor(TelemetryExtractor):
        def extract(self, argvalue: str) -> CollectedEvent:
            val = argvalue + argvalue
            return CollectedEvent(name=NAME_OF_EVENT_FOR_TEST, data=val, int_data=EVENT_INT_DATA)
    class NoArgExtractor(TelemetryExtractor):
        def extract(self, argvalue) -> CollectedEvent:
            return CollectedEvent(name=NAME_OF_EVENT_FOR_TEST)
    @tracked_function(
        category=CATEGORY_FOR_TEST, extractors=["arg2", NoArgExtractor("arg1"), "arg3", DoubleArgExtractor("arg2")]
    )
    def fn_to_test(arg1, arg2, arg3=CONSTANT_DEFAULT_ARGVALUE):
        pass
    fn_to_test("bar", "baz")
    assert start_session_event_spy.call_count == 1
    assert end_session_event_spy.call_count == 1
    assert send_event_spy.call_count == 4
    expected_call_args_list = [
        call(event_category=CATEGORY_FOR_TEST, event_action="arg2", event_label="baz", event_value=None),
        call(event_category=CATEGORY_FOR_TEST, event_action=NAME_OF_EVENT_FOR_TEST, event_label=None, event_value=None),
        call(
            event_category=CATEGORY_FOR_TEST,
            event_action="arg3",
            event_label=CONSTANT_DEFAULT_ARGVALUE,
            event_value=None,
        ),
        call(
            event_category=CATEGORY_FOR_TEST,
            event_action=NAME_OF_EVENT_FOR_TEST,
            event_label="bazbaz",
            event_value=EVENT_INT_DATA,
        ),
    ]
    assert send_event_spy.call_args_list == expected_call_args_list