Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
course-discovery
Commits
d37aba7e
Commit
d37aba7e
authored
Sep 22, 2016
by
Clinton Blackburn
Committed by
GitHub
Sep 22, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Ignoring empty query string parameters sent to search endpoint" (#351)
parent
6b2de5c7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
3 additions
and
44 deletions
+3
-44
course_discovery/apps/api/filters.py
+3
-19
course_discovery/apps/api/tests/test_filters.py
+0
-16
course_discovery/apps/api/v1/tests/test_views/test_search.py
+0
-9
No files found.
course_discovery/apps/api/filters.py
View file @
d37aba7e
...
@@ -4,7 +4,6 @@ import django_filters
...
@@ -4,7 +4,6 @@ import django_filters
from
django.conf
import
settings
from
django.conf
import
settings
from
django.contrib.auth
import
get_user_model
from
django.contrib.auth
import
get_user_model
from
django.db.models
import
QuerySet
from
django.db.models
import
QuerySet
from
django.http
import
QueryDict
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
ugettext
as
_
from
drf_haystack.filters
import
HaystackFacetFilter
,
HaystackFilter
as
DefaultHaystackFilter
from
drf_haystack.filters
import
HaystackFacetFilter
,
HaystackFilter
as
DefaultHaystackFilter
from
drf_haystack.query
import
FacetQueryBuilder
from
drf_haystack.query
import
FacetQueryBuilder
...
@@ -60,29 +59,14 @@ class FacetQueryBuilderWithQueries(FacetQueryBuilder):
...
@@ -60,29 +59,14 @@ class FacetQueryBuilderWithQueries(FacetQueryBuilder):
return
query
return
query
class
HaystackRequestFilterMixin
:
class
HaystackFacetFilterWithQueries
(
HaystackFacetFilter
):
@staticmethod
def
get_request_filters
(
request
):
filters
=
HaystackFacetFilter
.
get_request_filters
(
request
)
# Remove items with empty values
filters
=
dict
((
k
,
v
)
for
k
,
v
in
filters
.
items
()
if
v
)
# Convert the dict to a QueryDict to maintain the contract of the original method.
query_dict
=
QueryDict
(
''
,
mutable
=
True
)
query_dict
.
update
(
filters
)
return
query_dict
class
HaystackFacetFilterWithQueries
(
HaystackRequestFilterMixin
,
HaystackFacetFilter
):
query_builder_class
=
FacetQueryBuilderWithQueries
query_builder_class
=
FacetQueryBuilderWithQueries
class
HaystackFilter
(
HaystackRequestFilterMixin
,
DefaultHaystackFilter
):
class
HaystackFilter
(
DefaultHaystackFilter
):
@staticmethod
@staticmethod
def
get_request_filters
(
request
):
def
get_request_filters
(
request
):
filters
=
Haystack
RequestFilterMixin
.
get_request_filters
(
request
)
filters
=
Haystack
FacetFilter
.
get_request_filters
(
request
)
# Return data for the default partner, if no partner is requested
# Return data for the default partner, if no partner is requested
if
not
any
(
field
in
filters
for
field
in
(
'partner'
,
'partner_exact'
)):
if
not
any
(
field
in
filters
for
field
in
(
'partner'
,
'partner_exact'
)):
...
...
course_discovery/apps/api/tests/test_filters.py
deleted
100644 → 0
View file @
6b2de5c7
import
ddt
from
django.test
import
TestCase
from
rest_framework.test
import
APIRequestFactory
from
rest_framework.views
import
APIView
from
course_discovery.apps.api.filters
import
HaystackRequestFilterMixin
@ddt.ddt
class
HaystackRequestFilterMixinTests
(
TestCase
):
def
test_get_request_filters
(
self
):
""" Verify the method removes query parameters with empty values """
request
=
APIRequestFactory
()
.
get
(
'/?q='
)
request
=
APIView
()
.
initialize_request
(
request
)
filters
=
HaystackRequestFilterMixin
.
get_request_filters
(
request
)
self
.
assertDictEqual
(
filters
,
{})
course_discovery/apps/api/v1/tests/test_views/test_search.py
View file @
d37aba7e
...
@@ -236,12 +236,3 @@ class AggregateSearchViewSet(DefaultPartnerMixin, SerializationMixin, LoginMixin
...
@@ -236,12 +236,3 @@ class AggregateSearchViewSet(DefaultPartnerMixin, SerializationMixin, LoginMixin
response_data
=
json
.
loads
(
response
.
content
.
decode
(
'utf-8'
))
response_data
=
json
.
loads
(
response
.
content
.
decode
(
'utf-8'
))
self
.
assertListEqual
(
response_data
[
'objects'
][
'results'
],
self
.
assertListEqual
(
response_data
[
'objects'
][
'results'
],
[
self
.
serialize_course_run
(
other_course_run
),
self
.
serialize_program
(
other_program
)])
[
self
.
serialize_course_run
(
other_course_run
),
self
.
serialize_program
(
other_program
)])
def
test_empty_query
(
self
):
""" Verify, when the query (q) parameter is empty, the endpoint behaves as if the parameter
was not provided. """
course_run
=
CourseRunFactory
(
course__partner
=
self
.
partner
,
status
=
CourseRunStatus
.
Published
)
response
=
self
.
get_search_response
({
'q'
:
''
})
self
.
assertEqual
(
response
.
status_code
,
200
)
response_data
=
json
.
loads
(
response
.
content
.
decode
(
'utf-8'
))
self
.
assertListEqual
(
response_data
[
'objects'
][
'results'
],
[
self
.
serialize_course_run
(
course_run
)])
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment