Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#1635 | fixing facets filters
Browse files Browse the repository at this point in the history
  • Loading branch information
snyaggarwal committed Aug 14, 2023
1 parent 676e9b1 commit 2b00755
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
2 changes: 1 addition & 1 deletion core/common/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ def get_facets(self):
default_filters[latest_attr] = True

faceted_filters = {to_camel_case(k): v for k, v in self.get_faceted_filters(True).items()}
filters = {**default_filters, **self.get_facet_filters_from_kwargs(), **faceted_filters, 'retired': False}
filters = {**default_filters, **self.get_kwargs_filters(), **faceted_filters, 'retired': False}
if not self._should_exclude_retired_from_search_results() or not is_source_child_document_model:
filters.pop('retired')

Expand Down
36 changes: 36 additions & 0 deletions core/integration_tests/tests_concepts.py
Original file line number Diff line number Diff line change
Expand Up @@ -1738,6 +1738,18 @@ def test_facets(self):
self.assertEqual(response.status_code, 200)
self.assertEqual(list(response.data.keys()), ['facets'])

class_b_facet = [x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classb'][0]
self.assertEqual(class_b_facet[0], 'classb')
self.assertTrue(class_b_facet[1] >= 1)
self.assertFalse(class_b_facet[2])
self.assertEqual([x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classa'], [])

response = self.client.get(
self.source.uri + 'HEAD/concepts/?facetsOnly=true'
)
self.assertEqual(response.status_code, 200)
self.assertEqual(list(response.data.keys()), ['facets'])

class_a_facet = [x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classa'][0]
self.assertEqual(class_a_facet[0], 'classa')
self.assertTrue(class_a_facet[1] >= 1)
Expand All @@ -1748,6 +1760,30 @@ def test_facets(self):
self.assertTrue(class_b_facet[1] >= 1)
self.assertFalse(class_b_facet[2])

response = self.client.get(
self.source.concepts_url + '?facetsOnly=true'
)
self.assertEqual(response.status_code, 200)
self.assertEqual(list(response.data.keys()), ['facets'])

class_b_facet = [x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classb'][0]
self.assertEqual(class_b_facet[0], 'classb')
self.assertTrue(class_b_facet[1] >= 1)
self.assertFalse(class_b_facet[2])
self.assertEqual([x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classa'], [])

response = self.client.get(
self.source.uri + 'v1/concepts/?facetsOnly=true'
)
self.assertEqual(response.status_code, 200)
self.assertEqual(list(response.data.keys()), ['facets'])

class_b_facet = [x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classb'][0]
self.assertEqual(class_b_facet[0], 'classb')
self.assertTrue(class_b_facet[1] >= 1)
self.assertFalse(class_b_facet[2])
self.assertEqual([x for x in response.data['facets']['fields']['conceptClass'] if x[0] == 'classa'], [])


class ConceptNameRetrieveUpdateDestroyViewTest(OCLAPITestCase):
def setUp(self):
Expand Down

0 comments on commit 2b00755

Please sign in to comment.