def test_init_with_selected_facets(self): sf = FacetedSearchForm({}, searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, []) sf = FacetedSearchForm({}, selected_facets=[], searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, []) sf = FacetedSearchForm({}, selected_facets=['author:daniel'], searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, ['author:daniel']) sf = FacetedSearchForm( {}, selected_facets=['author:daniel', 'author:chris'], searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, ['author:daniel', 'author:chris'])
def test_init_with_selected_facets(self): sf = FacetedSearchForm({}, searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, []) sf = FacetedSearchForm({}, selected_facets=[], searchqueryset=self.sqs) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, []) sf = FacetedSearchForm( {}, selected_facets=["author:daniel"], searchqueryset=self.sqs ) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, ["author:daniel"]) sf = FacetedSearchForm( {}, selected_facets=["author:daniel", "author:chris"], searchqueryset=self.sqs, ) self.assertEqual(sf.errors, {}) self.assertEqual(sf.is_valid(), True) self.assertEqual(sf.selected_facets, ["author:daniel", "author:chris"])
def process_select_search_haystack(request, select_key): try: data = get_select_data(request, select_key) except KeyError: return _cant_get_key(request) form = FacetedSearchForm(request.GET) if not form.is_valid(): # do not think this can happen raise ValueError cd = form.cleaned_data if cd['q']: context = {'select_key': select_key} allowed_selects = [] for select in ['publisher', 'series', 'issue', 'story']: if data.get(select, False): allowed_selects.append(select) context['allowed_selects'] = allowed_selects sqs = GcdSearchQuerySet().facet('facet_model_name') return PaginatedFacetedSearchView(searchqueryset=sqs)(request, context=context) else: return HttpResponseRedirect( urlresolvers.reverse('select_object', kwargs={'select_key': select_key}) + '?' + request.META['QUERY_STRING'])
def process_select_search_haystack(request, select_key): try: data = get_select_data(request, select_key) except KeyError: return _cant_get_key(request) form = FacetedSearchForm(request.GET) if not form.is_valid(): # do not think this can happen raise ValueError cd = form.cleaned_data if cd["q"]: context = {"select_key": select_key} allowed_selects = [] for select in ["publisher", "series", "issue", "story"]: if data.get(select, False): allowed_selects.append(select) context["allowed_selects"] = allowed_selects sqs = GcdSearchQuerySet().facet("facet_model_name") return PaginatedFacetedSearchView(searchqueryset=sqs)(request, context=context) else: return HttpResponseRedirect( urlresolvers.reverse("select_object", kwargs={"select_key": select_key}) + "?" + request.META["QUERY_STRING"] )
class FacetedSearchFormTestCase(TestCase): def setUp(self): super(FacetedSearchFormTestCase, self).setUp() self.sqs = SearchQuerySet(query=DummySearchQuery(backend=DummySearchBackend()), site=None) self.target = FacetedSearchForm(data={'selected_facets': 'foo, bar'}, searchqueryset=self.sqs) def test_selected_facets(self): self.assertTrue(self.target.is_valid()) result = self.target.search() self.assertEquals(result.query.narrow_queries, set(['foo', 'bar']))