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.py75
1 files changed, 66 insertions, 9 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 9c023ade6..c1210c598 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -28,7 +28,7 @@ from django.core.urlresolvers import reverse
from django.test.client import Client
from ishtar_common.models import ImporterType, IshtarUser, ImporterColumn,\
FormaterType, ImportTarget, IshtarSiteProfile, ProfileType
-from django.utils.translation import pgettext_lazy
+from django.utils.translation import pgettext_lazy, gettext_lazy as _
from ishtar_common.models import Person, get_current_profile, UserProfile, \
Town, Area, Document
@@ -688,6 +688,70 @@ class FindSearchTest(FindInit, TestCase):
res = json.loads(response.content)
self.assertEqual(res['recordsTotal'], 1)
+ def _test_search(self, client, result, context=""):
+ for q, expected_result in result:
+ search = {'search_vector': q}
+ response = client.get(reverse('get-find'), search)
+ self.assertEqual(response.status_code, 200)
+ res = json.loads(response.content)
+ msg = "{} result(s) where expected for search: {}".format(
+ expected_result, q)
+ if context:
+ msg = context + " - " + msg
+ self.assertEqual(res['recordsTotal'], expected_result,
+ msg=msg)
+
+ def test_search_with_callable(self):
+ find = self.finds[0]
+ find2 = self.finds[1]
+ c = Client()
+ c.login(username=self.username, password=self.password)
+
+ loan_key = unicode(pgettext_lazy("key for text search", 'loan'))
+
+ result = [
+ (u'{}="{}"'.format(loan_key , unicode(_(u"Yes"))), 0),
+ (u'{}="{}"'.format(loan_key , unicode(_(u"No"))), 0),
+ ]
+ self._test_search(c, result, context="No container defined")
+
+ warehouse = Warehouse.objects.create(
+ name="Lambda warehouse",
+ warehouse_type=WarehouseType.objects.all()[0])
+ container = Container.objects.create(
+ location=warehouse,
+ responsible=warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+ find.container_ref = container
+ find.container = container
+ find.save()
+ container2 = Container.objects.create(
+ location=warehouse,
+ responsible=warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+ find2.container_ref = container2
+ find2.container = container2
+ find2.save()
+
+ result = [
+ (u'{}="{}"'.format(loan_key , unicode(_(u"Yes"))), 0),
+ (u'{}="{}"'.format(loan_key , unicode(_(u"No"))), 2),
+ ]
+ self._test_search(c, result, context="All container in their "
+ "reference location")
+ find2.container = container
+ find2.save()
+
+ result = [
+ (u'{}="{}"'.format(loan_key , unicode(_(u"Yes"))), 1),
+ (u'{}="{}"'.format(loan_key , unicode(_(u"No"))), 1),
+ ]
+ self._test_search(c, result, context="One container in his "
+ "reference location")
+
+
def test_dynamic_field_search(self):
find = self.finds[0]
find2 = self.finds[1]
@@ -750,14 +814,7 @@ class FindSearchTest(FindInit, TestCase):
]
c.login(username=self.username, password=self.password)
- for q, expected_result in result:
- search = {'search_vector': q}
- response = c.get(reverse('get-find'), search)
- self.assertEqual(response.status_code, 200)
- res = json.loads(response.content)
- self.assertEqual(res['recordsTotal'], expected_result,
- msg="{} result(s) where expected for search:"
- " {}".format(expected_result, q))
+ self._test_search(c, result)
class FindPermissionTest(FindInit, TestCase):