def test_get_form_kwargs(self):
        """Test getting the search view form kwargs."""
        v = SearchView()
        v.request = self.request

        form_kwargs = v.get_form_kwargs()
        self.assertEqual(form_kwargs.get('data').get('q'), self.query)
        self.assertEqual(form_kwargs.get('initial'), {})
        self.assertTrue('searchqueryset' in form_kwargs)
    def test_search_view_response(self):
        """Test the generic SearchView response."""
        response = SearchView.as_view()(request=self.request)

        context = response.context_data
        self.assertEqual(context['query'], self.query)
        self.assertEqual(context.get('view').__class__, SearchView)
        self.assertEqual(context.get('form').__class__, ModelSearchForm)
        self.assertIn('page_obj', context)
        self.assertNotIn('page', context)
    def test_search_view_form_invalid(self):
        """Test the generic SearchView form is invalid."""
        v = SearchView()
        v.kwargs = {}
        v.request = self.request

        form = v.get_form(v.get_form_class())
        response = v.form_invalid(form)
        context = response.context_data

        self.assertTrue('query' not in context)
    def test_search_view_form_valid(self):
        """Test the generic SearchView form is valid."""
        v = SearchView()
        v.kwargs = {}
        v.request = self.request

        form = v.get_form(v.get_form_class())
        response = v.form_valid(form)
        context = response.context_data

        self.assertEqual(context['query'], self.query)