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"