From 977bb2c573f8583f6b239f0499b12522be0d739a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sat, 16 Nov 2024 14:18:26 +0100 Subject: ✨ search: add AND operator "&&" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archaeological_operations/tests.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'archaeological_operations') 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) -- cgit v1.2.3