@@ -130,6 +130,35 @@ async def test_transaction_run_takes_no_query_object(async_fake_connection):
130130 await tx .run (Query ("RETURN 1" ))
131131
132132
133+ @mark_async_test
134+ @pytest .mark .parametrize ("params" , (
135+ {"x" : 1 },
136+ {"x" : "1" },
137+ {"x" : "1" , "y" : 2 },
138+ {"parameters" : {"nested" : "parameters" }},
139+ ))
140+ @pytest .mark .parametrize ("as_kwargs" , (True , False ))
141+ async def test_transaction_run_parameters (
142+ async_fake_connection , params , as_kwargs
143+ ):
144+ on_closed = MagicMock ()
145+ on_error = MagicMock ()
146+ on_cancel = MagicMock ()
147+ tx = AsyncTransaction (async_fake_connection , 2 , on_closed , on_error ,
148+ on_cancel )
149+ if not as_kwargs :
150+ params = {"parameters" : params }
151+ await tx .run ("RETURN $x" , ** params )
152+ calls = [call for call in async_fake_connection .method_calls
153+ if call [0 ] in ("run" , "send_all" , "fetch_message" )]
154+ assert [call [0 ] for call in calls ] == ["run" , "send_all" , "fetch_message" ]
155+ run = calls [0 ]
156+ assert run [1 ][0 ] == "RETURN $x"
157+ if "parameters" in params :
158+ params = params ["parameters" ]
159+ assert run [2 ]["parameters" ] == params
160+
161+
133162@mark_async_test
134163async def test_transaction_rollbacks_on_open_connections (
135164 async_fake_connection
0 commit comments