def testFacettedSearchWithUnicodeFilterQuery(self):
     self.portal.news.portal_type = u"Føø".encode("utf-8")
     self.maintenance.reindex()
     request = self.app.REQUEST
     request.form["SearchableText"] = "News"
     request.form["facet"] = "true"
     request.form["facet_field"] = "portal_type"
     view = SearchFacetsView(self.portal, request)
     view.kw = dict(results=solrSearchResults(request))
     facets = view.facets()
     self.assertEqual(sorted([c["name"] for c in facets[0]["counts"]]), ["Collection", u"Føø"])
Beispiel #2
0
 def testFacettedSearchWithUnicodeFilterQuery(self):
     self.portal.news.portal_type = u'Føø'.encode('utf-8')
     self.maintenance.reindex()
     self.request.form['SearchableText'] = 'News'
     self.request.form['facet'] = 'true'
     self.request.form['facet_field'] = 'portal_type'
     view = SearchFacetsView(self.portal, self.request)
     view.kw = dict(results=solrSearchResults(self.request))
     facets = view.facets()
     self.assertEqual(sorted([c['name'] for c in facets[0]['counts']]),
                      ['Collection', u'Føø'])
 def testFacettedSearchWithUnicodeFilterQuery(self):
     self.portal.news.portal_type = u'Føø'.encode('utf-8')
     self.maintenance.reindex()
     request = self.app.REQUEST
     request.form['SearchableText'] = 'News'
     request.form['facet'] = 'true'
     request.form['facet_field'] = 'portal_type'
     view = SearchFacetsView(self.portal, request)
     view.kw = dict(results=solrSearchResults(request))
     facets = view.facets()
     self.assertEqual(sorted([c['name'] for c in facets[0]['counts']]),
         ['Collection', u'Føø'])
 def testFacettedSearchWithUnicodeFilterQuery(self):
     self.portal.news.portal_type = "Føø"
     self.maintenance.reindex()
     self.request.form["SearchableText"] = "News"
     self.request.form["facet"] = "true"
     self.request.form["facet_field"] = "portal_type"
     view = SearchFacetsView(self.portal, self.request)
     view.kw = dict(results=solrSearchResults(self.request))
     facets = view.facets()
     self.assertEqual(
         sorted([c["name"] for c in facets[0]["counts"]]), ["Collection", u"Føø"]
     )
 def testFacettedSearchWithDependencies(self):
     # facets depending on others should not show up initially
     request = self.app.REQUEST
     request.form["SearchableText"] = "News"
     request.form["facet"] = "true"
     request.form["facet_field"] = ["portal_type", "review_state:portal_type"]
     view = SearchFacetsView(self.portal, request)
     view.kw = dict(results=solrSearchResults(request))
     facets = [facet["title"] for facet in view.facets()]
     self.assertEqual(facets, ["portal_type"])
     # now again with the required facet selected
     request.form["fq"] = "portal_type:Collection"
     view.kw = dict(results=solrSearchResults(request))
     facets = [facet["title"] for facet in view.facets()]
     self.assertEqual(facets, ["portal_type", "review_state"])
 def testFacettedSearchWithDependencies(self):
     # facets depending on others should not show up initially
     request = self.app.REQUEST
     request.form['SearchableText'] = 'News'
     request.form['facet'] = 'true'
     request.form['facet_field'] = ['portal_type',
         'review_state:portal_type']
     view = SearchFacetsView(self.portal, request)
     view.kw = dict(results=solrSearchResults(request))
     facets = [facet['title'] for facet in view.facets()]
     self.assertEqual(facets, ['portal_type'])
     # now again with the required facet selected
     request.form['fq'] = 'portal_type:Collection'
     view.kw = dict(results=solrSearchResults(request))
     facets = [facet['title'] for facet in view.facets()]
     self.assertEqual(facets, ['portal_type', 'review_state'])
Beispiel #7
0
 def testSelectedFacetValues(self):
     request = TestRequest()
     selected = SearchFacetsView(Dummy(), request).selected
     info = lambda: [(i['title'], i['value']) for i in selected()]
     request.form['fq'] = 'foo:"xy"'
     self.assertEqual(info(), [('foo', 'Title of Xy')])
     request.form['fq'] = ['foo:"x"', 'bar:"y"']
     self.assertEqual(info(),
                      [('foo', 'Title of X'), ('bar', 'Title of Y')])
     request.form['fq'] = ['foo:"x"', 'bar:"y"', 'bah:"z"']
     self.assertEqual(info(), [('foo', 'Title of X'), ('bar', 'Title of Y'),
                               ('bah', 'Title of Z')])
Beispiel #8
0
 def testSelectedFacetValues(self):
     request = TestRequest()
     selected = SearchFacetsView(Dummy(), request).selected
     info = lambda: [(i["title"], i["value"]) for i in selected()]
     request.form["fq"] = 'foo:"xy"'
     self.assertEqual(info(), [("foo", "Title of Xy")])
     request.form["fq"] = ['foo:"x"', 'bar:"y"']
     self.assertEqual(info(), [("foo", "Title of X"),
                               ("bar", "Title of Y")])
     request.form["fq"] = ['foo:"x"', 'bar:"y"', 'bah:"z"']
     self.assertEqual(
         info(),
         [("foo", "Title of X"), ("bar", "Title of Y"),
          ("bah", "Title of Z")],
     )
Beispiel #9
0
 def testSelectedFacetsInformation(self):
     request = TestRequest()
     selected = SearchFacetsView(Dummy(), request).selected
     # initially no facets are seleted
     self.assertEqual(selected(), [])
     # so let's select one...
     params = lambda query: sorted(map(unquote, query.split('&')))
     info = lambda: [(i['title'], params(i['query'])) for i in selected()]
     request.form['fq'] = 'foo:"xy"'
     self.assertEqual(info(), [
         ('foo', ['facet.field=foo']),
     ])
     # and then some more...
     request.form['fq'] = ['foo:"x"', 'bar:"y"']
     self.assertEqual(info(), [
         ('foo', ['facet.field=foo', 'fq=bar:"y"']),
         ('bar', ['facet.field=bar', 'fq=foo:"x"']),
     ])
     request.form['fq'] = ['foo:"x"', 'bar:"y"', 'bah:"z"']
     self.assertEqual(info(), [
         ('foo', ['facet.field=foo', 'fq=bah:"z"', 'fq=bar:"y"']),
         ('bar', ['facet.field=bar', 'fq=bah:"z"', 'fq=foo:"x"']),
         ('bah', ['facet.field=bah', 'fq=bar:"y"', 'fq=foo:"x"']),
     ])
     # extra parameter should be left untouched
     request.form['foo'] = 'bar'
     self.assertEqual(info(), [
         ('foo', [
          'facet.field=foo', 'foo=bar', 'fq=bah:"z"', 'fq=bar:"y"']),
         ('bar', [
          'facet.field=bar', 'foo=bar', 'fq=bah:"z"', 'fq=foo:"x"']),
         ('bah', [
          'facet.field=bah', 'foo=bar', 'fq=bar:"y"', 'fq=foo:"x"']),
     ])
     # an existing 'facet.field' parameter should be preserved
     del request.form['foo']
     request.form['facet.field'] = 'x'
     self.assertEqual(info(), [
         ('foo', [
          'facet.field=foo', 'facet.field=x', 'fq=bah:"z"', 'fq=bar:"y"']),
         ('bar', [
          'facet.field=bar', 'facet.field=x', 'fq=bah:"z"', 'fq=foo:"x"']),
         ('bah', [
          'facet.field=bah', 'facet.field=x', 'fq=bar:"y"', 'fq=foo:"x"']),
     ])
 def testFacettedSearchWithDependencies(self):
     # facets depending on others should not show up initially
     self.request.form["SearchableText"] = "News"
     self.request.form["facet"] = "true"
     self.request.form["facet_field"] = ["portal_type", "review_state:portal_type"]
     view = SearchFacetsView(self.portal, self.request)
     view.kw = dict(results=solrSearchResults(self.request))
     facets = [facet["title"] for facet in view.facets()]
     self.assertEqual(facets, ["portal_type"])
     # now again with the required facet selected
     self.request.form["fq"] = "portal_type:Collection"
     view.kw = dict(results=solrSearchResults(self.request))
     facets = [facet["title"] for facet in view.facets()]
     self.assertEqual(facets, ["portal_type", "review_state"])
Beispiel #11
0
 def testFacettedSearchWithDependencies(self):
     # facets depending on others should not show up initially
     self.request.form['SearchableText'] = 'News'
     self.request.form['facet'] = 'true'
     self.request.form['facet_field'] = [
         'portal_type', 'review_state:portal_type'
     ]
     view = SearchFacetsView(self.portal, self.request)
     view.kw = dict(results=solrSearchResults(self.request))
     facets = [facet['title'] for facet in view.facets()]
     self.assertEqual(facets, ['portal_type'])
     # now again with the required facet selected
     self.request.form['fq'] = 'portal_type:Collection'
     view.kw = dict(results=solrSearchResults(self.request))
     facets = [facet['title'] for facet in view.facets()]
     self.assertEqual(facets, ['portal_type', 'review_state'])
 def testEmptyFacetFieldWithZeroCounts(self):
     fields = dict(foo={"foo": 0, "bar": 0})
     results = Dummy(facet_counts=dict(facet_fields=fields))
     view = SearchFacetsView(Dummy(), TestRequest())
     view.kw = dict(results=results)
     self.assertEqual(view.facets(), [])
Beispiel #13
0
 def testEmptyFacetFieldWithZeroCounts(self):
     fields = dict(foo={'foo': 0, 'bar': 0})
     results = Dummy(facet_counts=dict(facet_fields=fields))
     view = SearchFacetsView(Dummy(), TestRequest())
     view.kw = dict(results=results)
     self.assertEqual(view.facets(), [])
Beispiel #14
0
 def testSelectedFacetsInformation(self):
     request = TestRequest()
     selected = SearchFacetsView(Dummy(), request).selected
     # initially no facets are seleted
     self.assertEqual(selected(), [])
     # so let's select one...
     params = lambda query: sorted(map(unquote, query.split("&")))
     info = lambda: [(i["title"], params(i["query"])) for i in selected()]
     request.form["fq"] = 'foo:"xy"'
     self.assertEqual(info(), [("foo", ["facet.field=foo"])])
     # and then some more...
     request.form["fq"] = ['foo:"x"', 'bar:"y"']
     self.assertEqual(
         info(),
         [
             ("foo", ["facet.field=foo", 'fq=bar:"y"']),
             ("bar", ["facet.field=bar", 'fq=foo:"x"']),
         ],
     )
     request.form["fq"] = ['foo:"x"', 'bar:"y"', 'bah:"z"']
     self.assertEqual(
         info(),
         [
             ("foo", ["facet.field=foo", 'fq=bah:"z"', 'fq=bar:"y"']),
             ("bar", ["facet.field=bar", 'fq=bah:"z"', 'fq=foo:"x"']),
             ("bah", ["facet.field=bah", 'fq=bar:"y"', 'fq=foo:"x"']),
         ],
     )
     # extra parameter should be left untouched
     request.form["foo"] = "bar"
     self.assertEqual(
         info(),
         [
             ("foo",
              ["facet.field=foo", "foo=bar", 'fq=bah:"z"', 'fq=bar:"y"']),
             ("bar",
              ["facet.field=bar", "foo=bar", 'fq=bah:"z"', 'fq=foo:"x"']),
             ("bah",
              ["facet.field=bah", "foo=bar", 'fq=bar:"y"', 'fq=foo:"x"']),
         ],
     )
     # an existing 'facet.field' parameter should be preserved
     del request.form["foo"]
     request.form["facet.field"] = "x"
     self.assertEqual(
         info(),
         [
             (
                 "foo",
                 [
                     "facet.field=foo", "facet.field=x", 'fq=bah:"z"',
                     'fq=bar:"y"'
                 ],
             ),
             (
                 "bar",
                 [
                     "facet.field=bar", "facet.field=x", 'fq=bah:"z"',
                     'fq=foo:"x"'
                 ],
             ),
             (
                 "bah",
                 [
                     "facet.field=bah", "facet.field=x", 'fq=bar:"y"',
                     'fq=foo:"x"'
                 ],
             ),
         ],
     )