From 5035b84968eb8a1bf5bb3145a61ea3ca32f32f26 Mon Sep 17 00:00:00 2001 From: Santos Gallegos Date: Tue, 9 May 2023 13:28:03 -0500 Subject: [PATCH] Search: fix when searching an empty query Fixes https://github.com/readthedocs/readthedocs.org/issues/9969 --- readthedocs/search/tests/test_views.py | 9 +++++++++ readthedocs/search/views.py | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/readthedocs/search/tests/test_views.py b/readthedocs/search/tests/test_views.py index 57fc559b545..b0efa51378c 100644 --- a/readthedocs/search/tests/test_views.py +++ b/readthedocs/search/tests/test_views.py @@ -128,6 +128,15 @@ def test_search_no_owned_projects(self, client, all_projects): ) assert len(results) == 0 + def test_search_empty_query(self, client): + results, facets = self._get_search_result( + url=self.url, + client=client, + search_params={"q": "", "type": "project"}, + ) + assert results == [] + assert facets == {} + @pytest.mark.django_db @pytest.mark.search diff --git a/readthedocs/search/views.py b/readthedocs/search/views.py index aba3201d54a..c58e91bcc0f 100644 --- a/readthedocs/search/views.py +++ b/readthedocs/search/views.py @@ -136,8 +136,9 @@ def _search_projects(self, user_input, request): projects=projects, use_advanced_query=True, ) - total_count = results.hits.total["value"] - results = ProjectSearchSerializer(results, many=True).data + if results: + total_count = results.hits.total["value"] + results = ProjectSearchSerializer(results, many=True).data context = user_input._asdict() context.update( {