summaryrefslogtreecommitdiff
path: root/archaeological_operations/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-16 14:18:26 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:55 +0100
commit977bb2c573f8583f6b239f0499b12522be0d739a (patch)
tree343da69fef167299db9e03ee8aebe8b052418735 /archaeological_operations/tests.py
parent5cd466f393e9be2bc0bce6315257e3344306bb43 (diff)
downloadIshtar-977bb2c573f8583f6b239f0499b12522be0d739a.tar.bz2
Ishtar-977bb2c573f8583f6b239f0499b12522be0d739a.zip
✨ search: add AND operator "&&"
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r--archaeological_operations/tests.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index e46c79ee6..18e17cca5 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -3084,6 +3084,26 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
response = c.get(reverse("get-operation"), {"search_vector": request})
self.assertEqual(json.loads(response.content.decode())["recordsTotal"], 2)
+ def test_and_search_vector(self):
+ operation_1 = models.Operation.objects.get(pk=self.operations[0].pk)
+ operation_2 = models.Operation.objects.get(pk=self.operations[1].pk)
+ villa = models.RemainType.objects.get(txt_idx="villa")
+ cairn = models.RemainType.objects.get(txt_idx="cairn")
+ operation_1.remains.add(villa)
+ operation_1.remains.add(cairn)
+ operation_2.remains.add(cairn)
+
+ c = Client()
+ c.login(username=self.username, password=self.password)
+
+ remain_key = pgettext_lazy("key for text search", "remain")
+ request = f'{remain_key}="{villa.label}" {remain_key}="{cairn.label}"'
+ response = c.get(reverse("get-operation"), {"search_vector": request})
+ self.assertEqual(json.loads(response.content.decode())["recordsTotal"], 2)
+ request = f'{remain_key}="{villa.label}" && {remain_key}="{cairn.label}"'
+ response = c.get(reverse("get-operation"), {"search_vector": request})
+ self.assertEqual(json.loads(response.content.decode())["recordsTotal"], 1)
+
def test_complex_search_vector(self):
c = Client()
c.login(username=self.username, password=self.password)