Skip to content

Commit c6ae506

Browse files
authored
Merge pull request #7076 from readthedocs/refactor-search
Search: Little refactor
2 parents 1851ed7 + 1fdea4b commit c6ae506

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

readthedocs/search/api.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,21 +117,24 @@ def get_queryset(self):
117117
# Validate all the required params are there
118118
self.validate_query_params()
119119
query = self.request.query_params.get('q', '')
120-
kwargs = {'filter_by_user': False, 'filters': {}}
121-
kwargs['filters']['project'] = [p.slug for p in self.get_all_projects()]
122-
kwargs['filters']['version'] = self._get_version().slug
120+
filters = {}
121+
filters['project'] = [p.slug for p in self.get_all_projects()]
122+
filters['version'] = self._get_version().slug
123123

124124
# Check to avoid searching all projects in case these filters are empty.
125-
if not kwargs['filters']['project']:
125+
if not filters['project']:
126126
log.info("Unable to find a project to search")
127127
return HTMLFile.objects.none()
128-
if not kwargs['filters']['version']:
128+
if not filters['version']:
129129
log.info("Unable to find a version to search")
130130
return HTMLFile.objects.none()
131131

132-
user = self.request.user
133132
queryset = PageSearch(
134-
query=query, user=user, **kwargs
133+
query=query,
134+
filters=filters,
135+
user=self.request.user,
136+
# We use a permission class to control authorization
137+
filter_by_user=False,
135138
)
136139
return queryset
137140

readthedocs/search/tests/test_faceted_search.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def test_search_exact_match(self, client, project, case):
2121
cased_query = getattr(query_text, case)
2222
query = cased_query()
2323

24-
page_search = PageSearch(query=query, user='')
24+
page_search = PageSearch(query=query)
2525
results = page_search.execute()
2626

2727
assert len(results) == 1
@@ -37,7 +37,7 @@ def test_search_combined_result(self, client, project):
3737
- Where `Foo` or `Bar` is present
3838
"""
3939
query = 'Elasticsearch Query'
40-
page_search = PageSearch(query=query, user='')
40+
page_search = PageSearch(query=query)
4141
results = page_search.execute()
4242
assert len(results) == 3
4343

readthedocs/search/tests/test_xss.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class TestXSS:
99

1010
def test_facted_page_xss(self, client, project):
1111
query = 'XSS'
12-
page_search = PageSearch(query=query, user='')
12+
page_search = PageSearch(query=query)
1313
results = page_search.execute()
1414
expected = """
1515
&lt;h3&gt;<span>XSS</span> exploit&lt;&#x2F;h3&gt;

0 commit comments

Comments
 (0)