summaryrefslogtreecommitdiff
path: root/archaeological_finds/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py55
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]