def METHOD_NAME(
    mock_emit: mock.MagicMock,
    enable_usage_stats,  # Needs to be before context fixtures to ensure usage stats handlers are attached
    method_name: str,
    expected_event: UsageStatsEvents,
    required_args: list[str],
    data_context_fixture_name: str,
    request,
):
    """
    What does this test and why?
    Ensures that all primary context types (EphemeralDataContext, FileDataContext, and CloudDataContext)
    emit the same usage stats events.
    This guards against the case where a child class overrides a method defined by AbstractDataContext
    but forgets to add the decorator, resulting in us losing event data.
    """
    context = request.getfixturevalue(data_context_fixture_name)
    module_path = f"{context.__module__}.{context.__class__.__name__}.{method_name}"
    logger.info(f"Testing {module_path}")
    # Every usage stats decorated method should have a corresponding private method for actual business logic
    method_to_patch = module_path.replace(method_name, f"_{method_name}")
    with mock.patch(method_to_patch) as mock_fn:
        method = getattr(context, method_name)
        # Generate a set of dummy values to trigger the target method
        # and invoke the usage stats decorator without causing side-effects
        kwargs = {param: mock.MagicMock() for param in required_args}
        method(**kwargs)
        mock_fn.assert_called_once()
    mock_calls = mock_emit.call_args_list
    assert len(mock_calls) == 2
    init_call, latest_call = mock_calls
    init_event = init_call[0][0]["event"]
    latest_event = latest_call[0][0]["event"]
    assert init_event == UsageStatsEvents.DATA_CONTEXT___INIT__
    assert latest_event == expected_event