def test_enable_case_search_reindex(self, fake_reindexer): """ When case search is enabled, reindex that domains cases """ enable_case_search(self.domain) self.assertEqual(fake_reindexer.call_args, call(self.domain)) self.assertTrue(fake_reindexer().reindex.called)
def test_enable_case_search_reindex(self, fake_reindexer): """ When case search is enabled, reindex that domains cases """ enable_case_search(self.domain) self.assertEqual(fake_reindexer.call_args, call(self.domain)) self.assertTrue(fake_reindexer().reindex.called)
def test_disable_case_search_reindex(self, fake_deleter): """ When case search is disabled, delete that domains cases """ with patch('corehq.apps.case_search.tasks.get_case_search_reindexer'): enable_case_search(self.domain) disable_case_search(self.domain) self.assertEqual(fake_deleter.call_args, call(self.domain))
def test_disable_case_search_reindex(self, fake_deleter): """ When case search is disabled, delete that domains cases """ with patch('corehq.apps.case_search.tasks.CaseSearchReindexerFactory'): enable_case_search(self.domain) disable_case_search(self.domain) self.assertEqual(fake_deleter.call_args, call(self.domain))
def post(self, request, *args, **kwargs): request_json = json.loads(request.body) enable = request_json.get('enable') fuzzies_by_casetype = request_json.get('fuzzy_properties') updated_fuzzies = [] for case_type, properties in six.iteritems(fuzzies_by_casetype): fp, created = FuzzyProperties.objects.get_or_create( domain=self.domain, case_type=case_type ) fp.properties = properties fp.save() updated_fuzzies.append(fp) unneeded_fuzzies = FuzzyProperties.objects.filter(domain=self.domain).exclude( case_type__in=list(fuzzies_by_casetype) ) unneeded_fuzzies.delete() ignore_patterns = request_json.get('ignore_patterns') updated_ignore_patterns = [] update_ignore_pattern_ids = [] for ignore_pattern_regex in ignore_patterns: rc, created = IgnorePatterns.objects.get_or_create( domain=self.domain, case_type=ignore_pattern_regex.get('case_type'), case_property=ignore_pattern_regex.get('case_property'), regex=ignore_pattern_regex.get('regex') ) updated_ignore_patterns.append(rc) update_ignore_pattern_ids.append(rc.pk) unneeded_ignore_patterns = IgnorePatterns.objects.filter(domain=self.domain).exclude( pk__in=update_ignore_pattern_ids ) unneeded_ignore_patterns.delete() if enable: enable_case_search(self.domain) else: disable_case_search(self.domain) CaseSearchConfig.objects.update_or_create(domain=self.domain, defaults={ 'enabled': request_json.get('enable'), 'fuzzy_properties': updated_fuzzies, 'ignore_patterns': updated_ignore_patterns, }) return json_response(self.page_context)
def post(self, request, *args, **kwargs): request_json = json.loads(request.body.decode('utf-8')) enable = request_json.get('enable') fuzzies_by_casetype = request_json.get('fuzzy_properties') updated_fuzzies = [] for case_type, properties in fuzzies_by_casetype.items(): fp, created = FuzzyProperties.objects.get_or_create( domain=self.domain, case_type=case_type ) fp.properties = properties fp.save() updated_fuzzies.append(fp) unneeded_fuzzies = FuzzyProperties.objects.filter(domain=self.domain).exclude( case_type__in=list(fuzzies_by_casetype) ) unneeded_fuzzies.delete() ignore_patterns = request_json.get('ignore_patterns') updated_ignore_patterns = [] update_ignore_pattern_ids = [] for ignore_pattern_regex in ignore_patterns: rc, created = IgnorePatterns.objects.get_or_create( domain=self.domain, case_type=ignore_pattern_regex.get('case_type'), case_property=ignore_pattern_regex.get('case_property'), regex=ignore_pattern_regex.get('regex') ) updated_ignore_patterns.append(rc) update_ignore_pattern_ids.append(rc.pk) unneeded_ignore_patterns = IgnorePatterns.objects.filter(domain=self.domain).exclude( pk__in=update_ignore_pattern_ids ) unneeded_ignore_patterns.delete() if enable: enable_case_search(self.domain) else: disable_case_search(self.domain) config, _ = CaseSearchConfig.objects.update_or_create(domain=self.domain, defaults={ 'enabled': request_json.get('enable'), }) config.ignore_patterns.set(updated_ignore_patterns) config.fuzzy_properties.set(updated_fuzzies) return json_response(self.page_context)