def testEchoedSearchRetrieveRequest(self): sruArguments = {'version':'1.1', 'operation':'searchRetrieve', 'query':'query >= 3', 'recordSchema':'schema', 'recordPacking':'string'} component = SruHandler() result = "".join(list(component._writeEchoedSearchRetrieveRequest(sruArguments=sruArguments))) self.assertEqualsWS("""<srw:echoedSearchRetrieveRequest> <srw:version>1.1</srw:version> <srw:query>query >= 3</srw:query> <srw:recordPacking>string</srw:recordPacking> <srw:recordSchema>schema</srw:recordSchema> </srw:echoedSearchRetrieveRequest>""", result)
def testEchoedSearchRetrieveRequestWithExtraRequestData(self): sruArguments = {'version':'1.1', 'operation':'searchRetrieve', 'query':'query >= 3', 'recordSchema':'schema', 'recordPacking':'string', 'x-term-drilldown':['field0,field1']} observer = CallTrace('ExtraRequestData') observer.methods['echoedExtraRequestData'] = lambda *a, **kw: (x for x in '<some>extra request data</some>') component = SruHandler() component.addObserver(SRUTermDrilldown()) component.addObserver(observer) result = "".join(list(component._writeEchoedSearchRetrieveRequest(sruArguments=sruArguments))) drilldownRequestData = DRILLDOWN_HEADER \ + """<dd:term-drilldown>field0,field1</dd:term-drilldown>"""\ + DRILLDOWN_FOOTER self.assertEqualsWS("""<srw:echoedSearchRetrieveRequest> <srw:version>1.1</srw:version> <srw:query>query >= 3</srw:query> <srw:recordPacking>string</srw:recordPacking> <srw:recordSchema>schema</srw:recordSchema> <srw:extraRequestData>%s<some>extra request data</some></srw:extraRequestData> </srw:echoedSearchRetrieveRequest>""" % drilldownRequestData, result)