1+ import json
12import os
23
34from unittest import TestCase
@@ -97,7 +98,6 @@ def test_generate_event_with_dict_value(self):
9798 "querystringparameters" : '{"documentId": "1044", "versionId": "v_1"}' ,
9899 },
99100 )
100- import json
101101
102102 result_json = json .loads (result )
103103 # Verify that queryStringParameters is a dict, not a string
@@ -119,7 +119,6 @@ def test_generate_event_with_complex_dict_value(self):
119119 "querystringparameters" : '{"filter": "status=active", "sort": "desc", "limit": "10"}' ,
120120 },
121121 )
122- import json
123122
124123 result_json = json .loads (result )
125124 # Verify complex dict is properly parsed
@@ -128,6 +127,25 @@ def test_generate_event_with_complex_dict_value(self):
128127 self .assertEqual (result_json ["queryStringParameters" ]["sort" ], "desc" )
129128 self .assertEqual (result_json ["queryStringParameters" ]["limit" ], "10" )
130129
130+ def test_generate_event_with_nested_dict_value (self ):
131+ """Test that generate_event preserves nested objects inside dict-type values"""
132+ events_lib = events .Events ()
133+ result = events_lib .generate_event (
134+ "apigateway" ,
135+ "aws-proxy" ,
136+ {
137+ "method" : "GET" ,
138+ "path" : "test" ,
139+ "body" : "" ,
140+ "querystringparameters" : '{"outer": {"inner": "x"}, "items": ["a", "b"]}' ,
141+ },
142+ )
143+
144+ result_json = json .loads (result )
145+ self .assertIsInstance (result_json ["queryStringParameters" ], dict )
146+ self .assertEqual (result_json ["queryStringParameters" ]["outer" ]["inner" ], "x" )
147+ self .assertEqual (result_json ["queryStringParameters" ]["items" ], ["a" , "b" ])
148+
131149
132150class TestServiceCommand (TestCase ):
133151 def setUp (self ):
0 commit comments