diff options
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r-- | archaeological_finds/tests.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 0f7645ec8..342f3d127 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -1340,6 +1340,24 @@ class FindSearchTest(FindInit, TestCase, SearchText): ] self._test_search(c, result, context="Text period search") + def test_operation_search(self): + values = [ + str(f.operation.code_patriarche) + for f in self.finds + ] + + c = Client() + c.login(username=self.username, password=self.password) + + key = str(pgettext_lazy("key for text search", "code-patriarche")) + result = [ + (f'{key}="{values[0]}"', 1), + (f'-{key}="{values[0]}"', 1), + (f'{key}="{values[0]}" {key}="{values[1]}"', 2), + (f'-{key}="{values[0]}" -{key}="{values[1]}"', 0), + ] + self._test_search(c, result, context="Operation") + def test_operator_search(self): operation = self.operations[0] operator = Organization.objects.create( @@ -1471,6 +1489,43 @@ class FindSearchTest(FindInit, TestCase, SearchText): res = json.loads(response.content.decode()) self.assertEqual(res["recordsTotal"], 1) + def test_mixed_search(self): + ope_values = [ + str(f.operation.code_patriarche) + for f in self.finds + ] + neo = Period.objects.get(txt_idx="neolithic") + final_neo = Period.objects.get(txt_idx="final-neolithic") + metal = models.MaterialType.objects.get(txt_idx="metal") + iron_metal = models.MaterialType.objects.get(txt_idx="iron_metal") + + find = self.finds[0] + find2 = self.finds[1] + dating = Dating.objects.create(period=final_neo) + find.datings.add(dating) + find.material_types.add(iron_metal) + find2.material_types.add(iron_metal) + find = models.Find.objects.get(pk=find.pk) + find.save() + find2 = models.Find.objects.get(pk=find2.pk) + find2.save() + + material_key = str(pgettext_lazy("key for text search", "material")) + period_key = str(pgettext_lazy("key for text search", "datings-period")) + ope_key = str(pgettext_lazy("key for text search", "code-patriarche")) + result = [ + (f'{ope_key}="{ope_values[0]}" {period_key}="{neo}" ' + f'{material_key}={iron_metal}', 1), + (f'-{ope_key}="{ope_values[0]}" {period_key}="{neo}"', 0), + (f'-{ope_key}="{ope_values[0]}" -{period_key}="{neo}"', 1), + (f'-{ope_key}="{ope_values[0]}" -{period_key}="{neo}" ' + f'-{material_key}={metal}', 0), + ] + + c = Client() + c.login(username=self.username, password=self.password) + self._test_search(c, result, context="Operation") + def test_search_with_callable(self): find = self.finds[0] find2 = self.finds[1] |