summaryrefslogtreecommitdiff
path: root/archaeological_operations/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-02-28 12:23:51 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-02-28 16:03:28 +0100
commit6cf86374a48ab080f5dfd91ea53cd090a783744e (patch)
tree1c77a128fdf6de255705ef2f5584c32103d2b29a /archaeological_operations/tests.py
parent4e61947798d61d14bd07b8c826e216994392e0e4 (diff)
downloadIshtar-6cf86374a48ab080f5dfd91ea53cd090a783744e.tar.bz2
Ishtar-6cf86374a48ab080f5dfd91ea53cd090a783744e.zip
Search: Fix many excluded search (refs #4793, refs #5209)
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r--archaeological_operations/tests.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 26da94f60..8d134e519 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -2981,6 +2981,12 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
result = json.loads(response.content.decode())
self.assertEqual(result["recordsTotal"], 1)
+ # multiple exclude
+ response = c.get(reverse("get-operation"),
+ {"search_vector": "-fougere -chateau"})
+ result = json.loads(response.content.decode())
+ self.assertEqual(result["recordsTotal"], 0)
+
def test_facet_search_vector(self):
ope1 = self.operations[0]
ope2 = self.operations[1]
@@ -2993,6 +2999,7 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
ope1.save()
ope2.year = 2020
ope2.save()
+ # ope3.year: 2018
data = {"numero_insee": "05000", "name": "Champoleon (test)"}
town = self.create_towns(datas=data)[-1]
@@ -3010,6 +3017,9 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
villa = models.RemainType.objects.get(txt_idx="villa")
ope1.remains.add(villa)
+ cairn = models.RemainType.objects.get(txt_idx="cairn")
+ ope2.remains.add(cairn)
+ ope3.remains.add(cairn)
search_period_q = str(pgettext("key for text search", "period"))
result = [
@@ -3028,6 +3038,11 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
]
self._test_search(c, result, context="Many integer")
+ result = [
+ ('-{}="{}"'.format(search_year_q, '2042";"2020'), 1),
+ ]
+ self._test_search(c, result, context="Exclude many integer")
+
search_town_q = str(pgettext("key for text search", "town"))
town = Town.objects.get(pk=town.pk)
result = [
@@ -3044,6 +3059,12 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
]
self._test_search(c, result, context="Period exclude")
+ search_period_q = str(pgettext("key for text search", "period"))
+ result = [
+ (f'-{search_period_q}="{neo}" -{search_period_q}="{gallo}"', 0),
+ ]
+ self._test_search(c, result, context="Many period exclude")
+
result = [
(
'{}="{}"'.format(
@@ -3076,6 +3097,11 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
('{}="{}"'.format(search_remain_q, str(villa)), 1),
]
self._test_search(c, result, context="Non hierarchic remain search")
+ result = [
+ (f'-{search_remain_q}="{cairn}"', 1),
+ (f'-{search_remain_q}="{cairn}" -{search_remain_q}="{villa}"', 0),
+ ]
+ self._test_search(c, result, context="Non hierarchic remain search exclude")
# boolean search
search_open_q = str(pgettext("key for text search", "is-open"))