def testServicePrefixSearch(self): observer = CallTrace('lucene') def prefixSearch(**kwargs): raise StopIteration(LuceneResponse(total=2, hits=['aap','noot'])) yield observer.methods['prefixSearch'] = prefixSearch service = LuceneRemoteService(CallTrace('reactor')) service.addObserver(observer) body = dumps({ 'message': 'prefixSearch', 'kwargs':{ 'prefix':'aap', 'fieldname': 'field', 'limit': 10, } }) result = ''.join(compose(service.handleRequest(path='/__lucene_remote__', Method="POST", Body=body))) header, body = result.split('\r\n'*2) self.assertTrue('Content-Type: application/json' in header, header) response = LuceneResponse.fromJson(body) self.assertEquals(2, response.total) self.assertEquals(['aap', 'noot'], response.hits) self.assertEquals(['prefixSearch'], observer.calledMethodNames()) m = observer.calledMethods[0] self.assertEquals('aap', m.kwargs['prefix']) self.assertEquals(10, m.kwargs['limit']) self.assertEquals('field', m.kwargs['fieldname'])
def testServicePrefixSearch(self): observer = CallTrace('lucene') def prefixSearch(**kwargs): raise StopIteration(LuceneResponse(total=2, hits=['aap', 'noot'])) yield observer.methods['prefixSearch'] = prefixSearch service = LuceneRemoteService(CallTrace('reactor')) service.addObserver(observer) body = dumps({ 'message': 'prefixSearch', 'kwargs': { 'prefix': 'aap', 'fieldname': 'field', 'limit': 10, } }) result = ''.join( compose( service.handleRequest(path='/__lucene_remote__', Method="POST", Body=body))) header, body = result.split('\r\n' * 2) self.assertTrue('Content-Type: application/json' in header, header) response = LuceneResponse.fromJson(body) self.assertEquals(2, response.total) self.assertEquals(['aap', 'noot'], response.hits) self.assertEquals(['prefixSearch'], observer.calledMethodNames()) m = observer.calledMethods[0] self.assertEquals('aap', m.kwargs['prefix']) self.assertEquals(10, m.kwargs['limit']) self.assertEquals('field', m.kwargs['fieldname'])
def testServiceExecuteQuery(self): observer = CallTrace('lucene') def executeQuery(**kwargs): raise StopIteration(LuceneResponse(total=2, hits=['aap','noot'])) yield observer.methods['executeQuery'] = executeQuery service = LuceneRemoteService(CallTrace('reactor')) service.addObserver(observer) body = dumps({ 'message': 'executeQuery', 'kwargs':{ 'cqlAbstractSyntaxTree': {'__CQL_QUERY__': 'query AND field=value'}, 'start':0, 'stop': 10, 'facets': [{'fieldname': 'field', 'maxTerms':5}], 'filterQueries': [{'__CQL_QUERY__': 'query=fiets'}], 'joinQueries': {'core1': {'__CQL_QUERY__': 'query=test'}} } }) result = ''.join(compose(service.handleRequest(path='/__lucene_remote__', Method="POST", Body=body))) header, body = result.split('\r\n'*2) self.assertTrue('Content-Type: application/json' in header, header+body) response = LuceneResponse.fromJson(body) self.assertEquals(2, response.total) self.assertEquals(['aap', 'noot'], response.hits) self.assertEquals(['executeQuery'], observer.calledMethodNames()) m = observer.calledMethods[0] self.assertEquals(parseString('query AND field=value'), m.kwargs['cqlAbstractSyntaxTree']) self.assertEquals(0, m.kwargs['start']) self.assertEquals(10, m.kwargs['stop']) self.assertEquals([{'fieldname': 'field', 'maxTerms':5}], m.kwargs['facets']) self.assertEquals([parseString('query=fiets')], m.kwargs['filterQueries']) self.assertEquals({'core1': parseString('query=test')}, m.kwargs['joinQueries'])
def testServiceExecuteQuery(self): observer = CallTrace('lucene') def executeQuery(**kwargs): raise StopIteration(LuceneResponse(total=2, hits=['aap', 'noot'])) yield observer.methods['executeQuery'] = executeQuery service = LuceneRemoteService(CallTrace('reactor')) service.addObserver(observer) body = dumps({ 'message': 'executeQuery', 'kwargs': { 'cqlAbstractSyntaxTree': { '__CQL_QUERY__': 'query AND field=value' }, 'start': 0, 'stop': 10, 'facets': [{ 'fieldname': 'field', 'maxTerms': 5 }], 'filterQueries': [{ '__CQL_QUERY__': 'query=fiets' }], 'joinQueries': { 'core1': { '__CQL_QUERY__': 'query=test' } } } }) result = ''.join( compose( service.handleRequest(path='/__lucene_remote__', Method="POST", Body=body))) header, body = result.split('\r\n' * 2) self.assertTrue('Content-Type: application/json' in header, header + body) response = LuceneResponse.fromJson(body) self.assertEquals(2, response.total) self.assertEquals(['aap', 'noot'], response.hits) self.assertEquals(['executeQuery'], observer.calledMethodNames()) m = observer.calledMethods[0] self.assertEquals(parseString('query AND field=value'), m.kwargs['cqlAbstractSyntaxTree']) self.assertEquals(0, m.kwargs['start']) self.assertEquals(10, m.kwargs['stop']) self.assertEquals([{ 'fieldname': 'field', 'maxTerms': 5 }], m.kwargs['facets']) self.assertEquals([parseString('query=fiets')], m.kwargs['filterQueries']) self.assertEquals({'core1': parseString('query=test')}, m.kwargs['joinQueries'])