def METHOD_NAME(dummy_exporter):
    @log_exceptions_and_usage(event="test-event")
    def entrypoint(provider):
        if provider == "one":
            provider_one()
        if provider == "two":
            provider_two()
    @log_exceptions_and_usage(provider="provider-one")
    def provider_one():
        dummy_layer()
    @log_exceptions_and_usage(provider="provider-two")
    def provider_two():
        set_usage_attribute("new-attr", "new-val")
    @log_exceptions_and_usage
    def dummy_layer():
        redis_store()
    @log_exceptions_and_usage(store="redis")
    def redis_store():
        set_usage_attribute("attr", "val")
    entrypoint(provider="one")
    entrypoint(provider="two")
    scope_name = "test_usage.test_global_context_building.<locals>"
    assert dummy_exporter
    assert {
        "event": "test-event",
        "provider": "provider-one",
        "store": "redis",
        "attr": "val",
        "entrypoint": f"{scope_name}.entrypoint",
    }.items() <= dummy_exporter[0].items()
    assert dummy_exporter[0]["calls"][0]["fn_name"] == f"{scope_name}.entrypoint"
    assert dummy_exporter[0]["calls"][1]["fn_name"] == f"{scope_name}.provider_one"
    assert dummy_exporter[0]["calls"][2]["fn_name"] == f"{scope_name}.dummy_layer"
    assert dummy_exporter[0]["calls"][3]["fn_name"] == f"{scope_name}.redis_store"
    assert (
        not {"store", "attr"} & dummy_exporter[1].keys()
    )  # check that context was reset
    assert {
        "event": "test-event",
        "provider": "provider-two",
        "new-attr": "new-val",
    }.items() <= dummy_exporter[1].items()