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]  | 
