11import glob
22import json
3+ import pkg_resources
34from collections import defaultdict , namedtuple
45from multiprocessing import Value
56from unittest import TestCase
67
78import snappy
89
9- from perfrunner .tests .analytics import BigFunQueryTest
1010from perfrunner .settings import ClusterSpec , TestConfig
1111from perfrunner .workloads .bigfun .query_gen import new_queries
1212from perfrunner .workloads .tcmalloc import KeyValueIterator , LargeIterator
1313from spring import docgen
14- from spring .querygen import N1QLQueryGen
14+
15+ cb_version = pkg_resources .get_distribution ("couchbase" ).version
16+ if cb_version [0 ] == '2' :
17+ from spring .querygen import N1QLQueryGen
18+ elif cb_version [0 ] == '3' :
19+ from spring .querygen3 import N1QLQueryGen3 as N1QLQueryGen
1520
1621
1722class SettingsTest (TestCase ):
@@ -607,10 +612,17 @@ def test_n1ql_query_gen_q1(self):
607612 qg = N1QLQueryGen (queries = queries )
608613
609614 for key in 'n1ql-0123456789' , 'n1ql-9876543210' :
610- query = qg .next (key , doc = {})
611- self .assertEqual (query .adhoc , False )
612- self .assertEqual (query .consistency , 'not_bounded' )
613- self .assertEqual (query ._body ['args' ], [key ])
615+ if cb_version [0 ] == '3' :
616+ stmt , queryopts = qg .next (key , doc = {})
617+ self .assertEqual (queryopts ['adhoc' ], False )
618+ self .assertEqual (str (queryopts ['scan_consistency' ]),
619+ 'QueryScanConsistency.NOT_BOUNDED' )
620+ self .assertEqual (queryopts ['positional_parameters' ], [key ])
621+ else :
622+ query = qg .next (key , doc = {})
623+ self .assertEqual (query .adhoc , False )
624+ self .assertEqual (query .consistency , 'not_bounded' )
625+ self .assertEqual (query ._body ['args' ], [key ])
614626
615627 def test_n1ql_query_gen_q2 (self ):
616628 queries = [{
@@ -622,9 +634,16 @@ def test_n1ql_query_gen_q2(self):
622634 qg = N1QLQueryGen (queries = queries )
623635
624636 for doc in {
'email' :
'[email protected] ' }, {
'email' :
'[email protected] ' }:
625- query = qg .next (key = 'n1ql-0123456789' , doc = doc )
626- self .assertEqual (query .consistency , 'request_plus' )
627- self .assertEqual (query ._body ['args' ], [doc ['email' ]])
637+ if cb_version [0 ] == '3' :
638+ stmt , queryopts = qg .next (key = 'n1ql-0123456789' , doc = doc )
639+ self .assertEqual (str (queryopts ['scan_consistency' ]),
640+ 'QueryScanConsistency.REQUEST_PLUS' )
641+ self .assertEqual (queryopts ['positional_parameters' ],
642+ [doc ['email' ]])
643+ else :
644+ query = qg .next (key = 'n1ql-0123456789' , doc = doc )
645+ self .assertEqual (query .consistency , 'request_plus' )
646+ self .assertEqual (query ._body ['args' ], [doc ['email' ]])
628647
629648
630649class BigFunTest (TestCase ):
0 commit comments