@@ -80,6 +80,54 @@ def test_transaction_execute_with_result(db, col, docs):
8080 assert job3 .result ()['_key' ] == docs [1 ]['_key' ]
8181
8282
83+ def test_transaction_execute_aql (db , col , docs ):
84+ with db .begin_transaction (
85+ return_result = True , read = [col .name ], write = [col .name ]) as txn_db :
86+ job1 = txn_db .aql .execute (
87+ 'INSERT @data IN @@collection' ,
88+ bind_vars = {'data' : docs [0 ], '@collection' : col .name })
89+ job2 = txn_db .aql .execute (
90+ 'INSERT @data IN @@collection' ,
91+ bind_vars = {'data' : docs [1 ], '@collection' : col .name })
92+ job3 = txn_db .aql .execute (
93+ 'RETURN DOCUMENT(@@collection, @key)' ,
94+ bind_vars = {'key' : docs [1 ]['_key' ], '@collection' : col .name })
95+ jobs = txn_db .queued_jobs ()
96+ assert jobs == [job1 , job2 , job3 ]
97+ assert all (job .status () == 'pending' for job in jobs )
98+
99+ assert txn_db .queued_jobs () == [job1 , job2 , job3 ]
100+ assert all (job .status () == 'done' for job in txn_db .queued_jobs ())
101+ assert extract ('_key' , col .all ()) == extract ('_key' , docs [:2 ])
102+
103+ # Test successful results
104+ assert extract ('_key' , job3 .result ()) == [docs [1 ]['_key' ]]
105+
106+
107+ def test_transaction_execute_aql_string_form (db , col , docs ):
108+ with db .begin_transaction (
109+ return_result = True , read = col .name , write = col .name ) as txn_db :
110+ job1 = txn_db .aql .execute (
111+ 'INSERT @data IN @@collection' ,
112+ bind_vars = {'data' : docs [0 ], '@collection' : col .name })
113+ job2 = txn_db .aql .execute (
114+ 'INSERT @data IN @@collection' ,
115+ bind_vars = {'data' : docs [1 ], '@collection' : col .name })
116+ job3 = txn_db .aql .execute (
117+ 'RETURN DOCUMENT(@@collection, @key)' ,
118+ bind_vars = {'key' : docs [1 ]['_key' ], '@collection' : col .name })
119+ jobs = txn_db .queued_jobs ()
120+ assert jobs == [job1 , job2 , job3 ]
121+ assert all (job .status () == 'pending' for job in jobs )
122+
123+ assert txn_db .queued_jobs () == [job1 , job2 , job3 ]
124+ assert all (job .status () == 'done' for job in txn_db .queued_jobs ())
125+ assert extract ('_key' , col .all ()) == extract ('_key' , docs [:2 ])
126+
127+ # Test successful results
128+ assert extract ('_key' , job3 .result ()) == [docs [1 ]['_key' ]]
129+
130+
83131def test_transaction_execute_error_in_result (db , col , docs ):
84132 txn_db = db .begin_transaction (timeout = 100 , sync = True )
85133 txn_col = txn_db .collection (col .name )
0 commit comments