Skip to content

Commit

Permalink
Add sanity tc for udf js and join
Browse files Browse the repository at this point in the history
Change-Id: Iae1f2ce876b721f10d6eec907c48b362f688382f
Reviewed-on: https://review.couchbase.org/c/testrunner/+/181433
Reviewed-by: Ajay Bhullar <ajay.bhullar@couchbase.com>
Tested-by: Pierre Regazzoni <pierre.regazzoni@couchbase.com>
  • Loading branch information
pierrecouch committed Oct 17, 2022
1 parent e963a13 commit 446db49
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion pytests/tuqquery/serverless/sanity.py
Expand Up @@ -69,6 +69,22 @@ def test_sanity(self):
self.assertEqual(result['metrics']['resultCount'], 1)
self.assertEqual(len(result['results'][0]), self.doc_count)
self.assertEqual(result['billingUnits'], {'ru': {'kv': self.doc_count+64*2}})
with self.subTest('UDF javascript'):
self.log.info("="*40)
self.log.info("===== SUBTEST: udf javascript")
udf = self.run_query(database, f"CREATE or REPLACE FUNCTION {self.scope}.plus(a,b) LANGUAGE JAVASCRIPT as 'function plus(a,b) {{return a+b}}'")
result = self.run_query(database, f'EXECUTE FUNCTION {self.scope}.plus(32,68)')
self.assertEqual(result['results'], [100])
with self.subTest('UDF javascript n1ql'):
self.log.info("="*40)
self.log.info("===== SUBTEST: udf javascript n1ql")
udf = self.run_query(database, f"CREATE or REPLACE FUNCTION {self.scope}.select_js(city, num) LANGUAGE JAVASCRIPT as 'function select_js(city, num) {{\
var query = SELECT name FROM {self.collection} WHERE name = $city LIMIT $num;\
var acc = [];\
for (const row of query) {{ acc.push(row); }}\
return acc;}}'")
result = self.run_query(database, f'EXECUTE FUNCTION {self.scope}.select_js("San Francisco", 5)')
self.assertEqual(result['results'], [[{'name': 'San Francisco'}, {'name': 'San Francisco'}, {'name': 'San Francisco'}, {'name': 'San Francisco'}, {'name': 'San Francisco'}]])
with self.subTest('transaction'):
self.log.info("="*40)
self.log.info("===== SUBTEST: transaction")
Expand All @@ -88,7 +104,9 @@ def test_sanity(self):
with self.subTest('Join'):
self.log.info("="*40)
self.log.info("===== SUBTEST: join")
self.skipTest('TBD: Join')
result = self.run_query(database, f'SELECT count(*) as count FROM {self.scope}.{self.collection} a JOIN {self.scope}.{self.collection} b ON a.name = b.name')
# self.assertEqual(result['billingUnits'], {'ru': {'kv': (self.doc_count+64*2)*2}})
self.assertEqual(result['results'], [{"count": self.doc_count * self.doc_count}])
with self.subTest('Update Statistics'):
self.log.info("="*40)
self.log.info("===== SUBTEST: update statistics")
Expand Down

0 comments on commit 446db49

Please sign in to comment.