Example #1
0
 def testNoSuggestionQuery(self):
     extraArguments = {'x-suggestionsQuery': [''], 'x-suggestionsField': ['fieldname'], 'x-suggestionsCount': ['5']}
     suggestion = Suggestion(count=10, field='dcterms:title', allowOverrideField=False)
     suggestion.addObserver(self.observer)
     result = retval(suggestion.executeQuery(kwarg='value', extraArguments=extraArguments))
     self.assertEquals(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEquals(None, methodKwargs['suggestionRequest'])
Example #2
0
    def testSpecialCharacters(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions={'Éäéðĉ': ['Éäéðĉ']}
        responseData = ''.join(compose(suggestions.extraResponseData(response=response, sruArguments={'x-suggestionsQuery':['Éäéðĉ']})))
        self.assertXmlEquals("""<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>Éäéðĉ</suggestion>
</suggestions>
""", responseData)
Example #3
0
 def testXSuggestionCountMaximized(self):
     extraArguments = {'x-suggestionsQuery': ['query'], 'x-suggestionsCount': ['50']}
     suggestion = Suggestion(count=10, field='dcterms:title', maximumCount=20)
     suggestion.addObserver(self.observer)
     result = retval(suggestion.executeQuery(kwarg='value', extraArguments=extraArguments))
     self.assertTrue(result == self.response)
     self.assertEquals(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEquals(dict(count=20, field='dcterms:title', suggests=['query']), methodKwargs['suggestionRequest'])
Example #4
0
 def testXSuggestionQueryCountAndFieldToSuggestionRequest(self):
     extraArguments = {'x-suggestionsQuery': ['query'], 'x-suggestionsField': ['fieldname'], 'x-suggestionsCount': ['5']}
     suggestion = Suggestion(count=10, field='dcterms:title', allowOverrideField=True)
     suggestion.addObserver(self.observer)
     result = retval(suggestion.executeQuery(kwarg='value', extraArguments=extraArguments))
     self.assertTrue(result == self.response)
     self.assertEquals(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEquals(dict(count=5, field='fieldname', suggests=['query']), methodKwargs['suggestionRequest'])
Example #5
0
 def testDoNothingIfNoSuggestionsInResponse(self):
     suggestions = Suggestion(count=1, field='afield')
     response = Response(total=0, hits=[])
     responseData = list(
         compose(
             suggestions.extraResponseData(
                 response=response,
                 sruArguments={'x-suggestionsQuery': ["query"]})))
     self.assertEqual([], responseData)
Example #6
0
    def testHarriePoter(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions={'harrie': ['harry', 'marie'], 'poter': ['potter', 'peter'] }
        responseData = ''.join(compose(suggestions.extraResponseData(response=response, sruArguments={'x-suggestionsQuery':["harrie AND poter"]})))
        self.assertEqualsWS("""<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>harry AND potter</suggestion>
    <suggestion>marie AND peter</suggestion>
</suggestions>
""", responseData)
Example #7
0
    def testCreateExtraResponseDataWithMultipleSuggestions(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions={'query': ['que', 'emery', 'queen'], 'value': ['valu', 'ot'] }
        responseData = ''.join(compose(suggestions.extraResponseData(response=response, sruArguments={'x-suggestionsQuery':["query AND value"]})))
        self.assertEqualsWS("""<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>que AND valu</suggestion>
    <suggestion>emery AND ot</suggestion>
</suggestions>
""", responseData)
Example #8
0
    def testEchoedExtraRequestDataOtherCountField(self):
        suggestion = Suggestion(count=1, field='afield', allowOverrideField=True)

        result = "".join(list(suggestion.echoedExtraRequestData(sruArguments={'x-suggestionsQuery': ['query'], 'x-suggestionsCount': ['2'], 'x-suggestionsField': ['field']})))

        self.assertEqualsWS("""
            <suggestions xmlns="http://meresco.org/namespace/suggestions">
                <query>query</query>
                <count>2</count>
                <field>field</field>
            </suggestions>""", result)
Example #9
0
    def testEchoedExtraRequestData(self):
        suggestion = Suggestion(count=1, field='afi>eld')

        result = "".join(list(suggestion.echoedExtraRequestData(sruArguments={'x-suggestionsQuery': ['que<ry']})))

        self.assertEqualsWS("""
            <suggestions xmlns="http://meresco.org/namespace/suggestions">
                <query>que&lt;ry</query>
                <count>1</count>
                <field>afi&gt;eld</field>
            </suggestions>""", result)
Example #10
0
 def testXSuggestionQueryToSuggestionRequest(self):
     extraArguments = {'x-suggestionsQuery': ['query']}
     suggestion = Suggestion(count=10, field='dcterms:title')
     suggestion.addObserver(self.observer)
     result = retval(
         suggestion.executeQuery(kwarg='value',
                                 extraArguments=extraArguments))
     self.assertTrue(result == self.response)
     self.assertEqual(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEqual(
         dict(count=10, field='dcterms:title', suggests=['query']),
         methodKwargs['suggestionRequest'])
Example #11
0
    def testSpecialCharacters(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions = {'Éäéðĉ': ['Éäéðĉ']}
        responseData = ''.join(
            compose(
                suggestions.extraResponseData(
                    response=response,
                    sruArguments={'x-suggestionsQuery': ['Éäéðĉ']})))
        self.assertXmlEquals(
            """<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>Éäéðĉ</suggestion>
</suggestions>
""", responseData)
Example #12
0
 def testNoSuggestionQuery(self):
     extraArguments = {
         'x-suggestionsQuery': [''],
         'x-suggestionsField': ['fieldname'],
         'x-suggestionsCount': ['5']
     }
     suggestion = Suggestion(count=10,
                             field='dcterms:title',
                             allowOverrideField=False)
     suggestion.addObserver(self.observer)
     result = retval(
         suggestion.executeQuery(kwarg='value',
                                 extraArguments=extraArguments))
     self.assertEqual(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEqual(None, methodKwargs['suggestionRequest'])
Example #13
0
    def testCreateExtraResponseDataWithMultipleSuggestions(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions = {
            'query': ['que', 'emery', 'queen'],
            'value': ['valu', 'ot']
        }
        responseData = ''.join(
            compose(
                suggestions.extraResponseData(
                    response=response,
                    sruArguments={'x-suggestionsQuery': ["query AND value"]})))
        self.assertEqualsWS(
            """<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>que AND valu</suggestion>
    <suggestion>emery AND ot</suggestion>
</suggestions>
""", responseData)
Example #14
0
    def testEchoedExtraRequestData(self):
        suggestion = Suggestion(count=1, field='afi>eld')

        result = "".join(
            list(
                suggestion.echoedExtraRequestData(
                    sruArguments={
                        'x-suggestionsQuery': ['que<ry'],
                        'x-suggestMode': ['SUGGEST_MORE_POPULAR']
                    })))

        self.assertEqualsWS(
            """
            <suggestions xmlns="http://meresco.org/namespace/suggestions">
                <query>que&lt;ry</query>
                <count>1</count>
                <field>afi&gt;eld</field>
                <mode>SUGGEST_MORE_POPULAR</mode>
            </suggestions>""", result)
Example #15
0
    def testHarriePoter(self):
        suggestions = Suggestion(count=1, field='afield')
        response = Response(total=0, hits=[])
        response.suggestions = {
            'harrie': ['harry', 'marie'],
            'poter': ['potter', 'peter']
        }
        responseData = ''.join(
            compose(
                suggestions.extraResponseData(
                    response=response,
                    sruArguments={'x-suggestionsQuery':
                                  ["harrie AND poter"]})))
        self.assertEqualsWS(
            """<suggestions xmlns="http://meresco.org/namespace/suggestions">
    <suggestion>harry AND potter</suggestion>
    <suggestion>marie AND peter</suggestion>
</suggestions>
""", responseData)
Example #16
0
    def testEchoedExtraRequestDataOtherCountField(self):
        suggestion = Suggestion(count=1,
                                field='afield',
                                allowOverrideField=True)

        result = "".join(
            list(
                suggestion.echoedExtraRequestData(
                    sruArguments={
                        'x-suggestionsQuery': ['query'],
                        'x-suggestionsCount': ['2'],
                        'x-suggestionsField': ['field']
                    })))

        self.assertEqualsWS(
            """
            <suggestions xmlns="http://meresco.org/namespace/suggestions">
                <query>query</query>
                <count>2</count>
                <field>field</field>
            </suggestions>""", result)
Example #17
0
 def testXSuggestionQueryCountAndFieldToSuggestionRequest(self):
     extraArguments = {
         'x-suggestionsQuery': ['query'],
         'x-suggestionsField': ['fieldname'],
         'x-suggestionsCount': ['5'],
         'x-suggestMode': ['SUGGEST_MORE_POPULAR']
     }
     suggestion = Suggestion(count=10,
                             field='dcterms:title',
                             allowOverrideField=True)
     suggestion.addObserver(self.observer)
     result = retval(
         suggestion.executeQuery(kwarg='value',
                                 extraArguments=extraArguments))
     self.assertTrue(result == self.response)
     self.assertEqual(['executeQuery'], self.observer.calledMethodNames())
     methodKwargs = self.observer.calledMethods[0].kwargs
     self.assertEqual(
         dict(count=5,
              field='fieldname',
              mode='SUGGEST_MORE_POPULAR',
              suggests=['query']), methodKwargs['suggestionRequest'])
 def testExecuteQueryWithoutExtraArguments(self):
     suggestion = Suggestion(count=10, field='dcterms:title')
     suggestion.addObserver(self.observer)
     result = retval(suggestion.executeQuery(kwarg='value'))
     self.assertEquals(['executeQuery'], self.observer.calledMethodNames())
     self.assertTrue(result == self.response)
Example #19
0
 def testDoNothingIfNoSuggestionsInResponse(self):
     suggestions = Suggestion(count=1, field='afield')
     response = Response(total=0, hits=[])
     responseData = list(compose(suggestions.extraResponseData(response=response, sruArguments={'x-suggestionsQuery': ["query"]})))
     self.assertEquals([], responseData)
Example #20
0
 def testExecuteQueryWithoutExtraArguments(self):
     suggestion = Suggestion(count=10, field='dcterms:title')
     suggestion.addObserver(self.observer)
     result = retval(suggestion.executeQuery(kwarg='value'))
     self.assertEqual(['executeQuery'], self.observer.calledMethodNames())
     self.assertTrue(result == self.response)