Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#1244 | concept search integration test
Browse files Browse the repository at this point in the history
  • Loading branch information
snyaggarwal committed Mar 23, 2022
1 parent a7c807d commit 89382be
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 4 deletions.
8 changes: 4 additions & 4 deletions core/common/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -812,14 +812,14 @@ def resolve_reference_expression(url, namespace=None, version=None):
class CelerySignalProcessor(RealTimeSignalProcessor):
def handle_save(self, sender, instance, **kwargs):
if settings.ES_SYNC and instance.__class__ in registry.get_models() and instance.should_index:
if settings.TEST_MODE:
super().handle_save(instance.model_name, instance.id)
if get(settings, 'TEST_MODE', False):
handle_save(instance.app_name, instance.model_name, instance.id)
else:
handle_save.delay(instance.app_name, instance.model_name, instance.id)

def handle_m2m_changed(self, sender, instance, action, **kwargs):
if settings.ES_SYNC and instance.__class__ in registry.get_models() and instance.should_index:
if settings.TEST_MODE:
super().handle_save(instance.model_name, instance.id)
if get(settings, 'TEST_MODE', False):
handle_m2m_changed(instance.app_name, instance.model_name, instance.id, action)
else:
handle_m2m_changed.delay(instance.app_name, instance.model_name, instance.id, action)
44 changes: 44 additions & 0 deletions core/integration_tests/tests_concepts.py
Original file line number Diff line number Diff line change
Expand Up @@ -1322,3 +1322,47 @@ def test_get_200(self): # pylint: disable=too-many-statements
self.assertEqual(entry['id'], concept2.mnemonic)
self.assertEqual(entry['type'], 'Concept')
self.assertEqual(len(entry['entries']), 0)


class ConceptListViewTest(OCLAPITestCase):
def setUp(self):
super().setUp()
self.source = OrganizationSourceFactory(mnemonic='MySource')
self.concept1 = ConceptFactory(mnemonic='MyConcept1', parent=self.source, concept_class='classA')
self.concept2 = ConceptFactory(mnemonic='MyConcept2', parent=self.source, concept_class='classB')

def test_get_200(self):
response = self.client.get('/concepts/?q=Concept2')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertEqual(response.data[0]['id'], 'MyConcept2')
self.assertEqual(response.data[0]['uuid'], str(self.concept2.get_latest_version().id))
self.assertEqual(response.data[0]['versioned_object_id'], self.concept2.id)

response = self.client.get('/concepts/?q=Concept1')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertEqual(response.data[0]['id'], 'MyConcept1')

response = self.client.get('/concepts/?q=classA&exact_match=on')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertEqual(response.data[0]['id'], 'MyConcept1')

response = self.client.get('/concepts/?q=Concept1&exact_match=on')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 0)

response = self.client.get('/concepts/?q=Concept1&conceptClass=classA')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertEqual(response.data[0]['id'], 'MyConcept1')

response = self.client.get('/concepts/?q=Concept1&conceptClass=classB')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 0)

response = self.client.get('/concepts/?conceptClass=classA')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertEqual(response.data[0]['id'], 'MyConcept1')

0 comments on commit 89382be

Please sign in to comment.