Skip to content

Commit

Permalink
MB-51590: add test case for multiple query statement (inner)
Browse files Browse the repository at this point in the history
Change-Id: I27ccc9264a4f6633ec4f4dcac4c441e638d98a33
Reviewed-on: https://review.couchbase.org/c/testrunner/+/172863
Reviewed-by: Ajay Bhullar <ajay.bhullar@couchbase.com>
Tested-by: Pierre Regazzoni <pierre.regazzoni@couchbase.com>
  • Loading branch information
pierrecouch committed Mar 28, 2022
1 parent de0eaac commit 205d103
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
3 changes: 2 additions & 1 deletion conf/tuq/py-tuq-udf-n1ql.conf
Expand Up @@ -89,4 +89,5 @@ tuqquery.tuq_UDF_N1QL.QueryUDFN1QLTests:
test_flush_collection,statement=TRUNCATE
test_dml_consume
test_dml_consume,explicit_close=True
test_error_handling
test_error_handling
test_multiple_inner
22 changes: 22 additions & 0 deletions pytests/tuqquery/tuq_UDF_N1QL.py
Expand Up @@ -1462,6 +1462,28 @@ def test_iterator(self):
actual_result = function_result['results'][0]
self.assertEqual(actual_result, expected_result)

def test_multiple_inner(self):
function_name = 'multiple_inner'
functions = f'function {function_name}() {{\
var res=[];\
var q1 = SELECT * FROM [1,2,3,4,5] AS t ORDER BY t;\
for (const doc of q1) {{\
res.push(doc);\
var q2 = SELECT COUNT(*) FROM [1,2,3] AS s;\
q2.close();\
}}\
q1.close();\
return res;\
}}'
self.create_library(self.library_name, functions, [function_name])
self.run_cbq_query(f'CREATE OR REPLACE FUNCTION {function_name}() LANGUAGE JAVASCRIPT AS "{function_name}" AT "{self.library_name}"')

# Execute function
function_result = self.run_cbq_query(f'EXECUTE FUNCTION {function_name}()')
expected_result = [{"t": 1}, {"t": 2}, {"t": 3}, {"t": 4}, {"t": 5}]
actual_result = function_result['results'][0]
self.assertEqual(actual_result, expected_result)

def test_multiple_iterator(self):
function_name = 'param_from_var_default'
functions = f'function {function_name}(j, y, m) {{\
Expand Down

0 comments on commit 205d103

Please sign in to comment.