Skip to content

Commit 33dfef8

Browse files
more
1 parent e253803 commit 33dfef8

File tree

2 files changed

+158
-5
lines changed

2 files changed

+158
-5
lines changed

src/django_elasticsearch_dsl_drf/tests/test_faceted_search.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ def _list_results_with_facets(self):
105105
'buckets',
106106
facet_state_response.data['facets']['_filter_state']['state']
107107
)
108-
self.assertIn(
109-
'buckets',
110-
facet_state_response.data['facets']['_filter_state']['state']
111-
)
108+
# self.assertIn(
109+
# 'buckets',
110+
# facet_state_response.data['facets']['_filter_state']['state']
111+
# )
112112
self.assertIn(
113113
{
114114
"doc_count": 10,

src/django_elasticsearch_dsl_drf/tests/test_filtering_post_filter.py

Lines changed: 154 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
from django.core.management import call_command
1010

11+
from nine.versions import DJANGO_GTE_1_10
12+
1113
import pytest
1214

1315
from rest_framework import status
@@ -23,6 +25,11 @@
2325
)
2426
from .data_mixins import AddressesMixin, BooksMixin
2527

28+
if DJANGO_GTE_1_10:
29+
from django.urls import reverse
30+
else:
31+
from django.core.urlresolvers import reverse
32+
2633
__title__ = 'django_elasticsearch_dsl_drf.tests.test_filtering_post'
2734
__author__ = 'Artur Barseghyan <[email protected]>'
2835
__copyright__ = '2017-2018 Artur Barseghyan'
@@ -472,7 +479,153 @@ def test_ids_filter(self):
472479
# ***********************************************************************
473480

474481
# This is what's it's all about - the facets.
475-
# TODO
482+
def _list_results_with_facets(self):
483+
"""List results with facets."""
484+
self.authenticate()
485+
486+
url = reverse('bookdocument-list', kwargs={})
487+
facet_state_url = url + '?facet=state'
488+
data = {}
489+
490+
# ******************************************************************
491+
# ************************ No args response ************************
492+
# ******************************************************************
493+
494+
# Make request
495+
no_args_response = self.client.get(url, data)
496+
self.assertEqual(no_args_response.status_code, status.HTTP_200_OK)
497+
498+
# Should contain 20 results
499+
self.assertEqual(len(no_args_response.data['results']), self.all_count)
500+
501+
# Should contain 1 facets
502+
self.assertEqual(len(no_args_response.data['facets']), 1)
503+
504+
# ******************************************************************
505+
# ********************** With facets response **********************
506+
# ******************************************************************
507+
508+
# Make request
509+
facet_state_response = self.client.get(facet_state_url, data)
510+
self.assertEqual(facet_state_response.status_code, status.HTTP_200_OK)
511+
512+
# Should contain 20 results
513+
self.assertEqual(
514+
len(facet_state_response.data['results']), self.all_count
515+
)
516+
517+
# Should contain 2 facets
518+
self.assertEqual(len(facet_state_response.data['facets']), 2)
519+
520+
self.assertIn('_filter_publisher', facet_state_response.data['facets'])
521+
self.assertIn(
522+
'publisher',
523+
facet_state_response.data['facets']['_filter_publisher']
524+
)
525+
526+
self.assertIn('_filter_state', facet_state_response.data['facets'])
527+
self.assertIn(
528+
'state',
529+
facet_state_response.data['facets']['_filter_state']
530+
)
531+
self.assertIn(
532+
'buckets',
533+
facet_state_response.data['facets']['_filter_state']['state']
534+
)
535+
# self.assertIn(
536+
# 'buckets',
537+
# facet_state_response.data['facets']['_filter_state']['state']
538+
# )
539+
self.assertIn(
540+
{
541+
"doc_count": 10,
542+
"key": "published"
543+
},
544+
facet_state_response.data['facets']
545+
['_filter_state']
546+
['state']
547+
['buckets']
548+
)
549+
self.assertIn(
550+
{
551+
"doc_count": 10,
552+
"key": "in_progress"
553+
},
554+
facet_state_response.data['facets']
555+
['_filter_state']
556+
['state']
557+
['buckets']
558+
)
559+
self.assertIn(
560+
{
561+
"doc_count": 7,
562+
"key": "rejected"
563+
},
564+
facet_state_response.data['facets']
565+
['_filter_state']
566+
['state']
567+
['buckets']
568+
)
569+
570+
# ******************************************************************
571+
# ******************* With facets filtered response ****************
572+
# ******************************************************************
573+
574+
facet_state_filered_url = url + '?facet=state&state=published'
575+
# Make request
576+
facet_state_filtered_response = self.client.get(
577+
facet_state_filered_url,
578+
data
579+
)
580+
self.assertEqual(
581+
facet_state_filtered_response.status_code,
582+
status.HTTP_200_OK
583+
)
584+
585+
# Should contain 20 results
586+
self.assertEqual(
587+
len(facet_state_filtered_response.data['results']),
588+
self.published_count
589+
)
590+
591+
# Should contain 2 facets
592+
self.assertEqual(len(facet_state_filtered_response.data['facets']), 2)
593+
594+
# Still same facets
595+
self.assertIn(
596+
{
597+
"doc_count": 10,
598+
"key": "published"
599+
},
600+
facet_state_response.data['facets']
601+
['_filter_state']
602+
['state']
603+
['buckets']
604+
)
605+
self.assertIn(
606+
{
607+
"doc_count": 10,
608+
"key": "in_progress"
609+
},
610+
facet_state_response.data['facets']
611+
['_filter_state']
612+
['state']
613+
['buckets']
614+
)
615+
self.assertIn(
616+
{
617+
"doc_count": 7,
618+
"key": "rejected"
619+
},
620+
facet_state_response.data['facets']
621+
['_filter_state']
622+
['state']
623+
['buckets']
624+
)
625+
626+
def test_list_results_with_facets(self):
627+
"""Test list results with facets."""
628+
return self._list_results_with_facets()
476629

477630
# ***********************************************************************
478631
# ************************* Other fields ********************************

0 commit comments

Comments
 (0)