Untitled

🧩 Syntax:
import pytest
from my_module import SnsEventData

@pytest.mark.parametrize(
    "event_data, event_type, event_version, log_fields, exception, affected_components, affected_sales_order_entities",
    [
        ({"key1": "value1", "key2": "value2"}, "test_event", 1, {"field1": "value1", "field2": "value2"}, ValueError("Test Exception"), ["component1", "component2"], {"entity1": "value1", "entity2": "value2"}),
        ({}, "test_event", 1, {}, None, [], {}),
    ],
)
def test_sns_event_data(
    event_data, event_type, event_version, log_fields, exception, affected_components, affected_sales_order_entities
):
    sns_event_data = SnsEventData(event_data, event_type, event_version)
    
    # Test attribute getters
    assert sns_event_data.get_event_type() == event_type
    assert sns_event_data.get_event_version() == event_version
    assert sns_event_data.log_fields == log_fields
    assert sns_event_data.exception == exception
    assert sns_event_data.affected_components == affected_components
    assert sns_event_data.affected_sales_order_entities == affected_sales_order_entities
    
    # Test inherited methods
    assert sns_event_data.get("key1") == event_data.get("key1")
    assert sns_event_data.get("nonexistent_key", "default_value") == "default_value"