summaryrefslogtreecommitdiff
path: root/archaeological_finds/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-02-11 17:51:16 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2020-02-11 17:51:16 +0100
commit55f75a8e8de346991cad442cd78bc3a5973c278a (patch)
tree93f30085377550300e23cc85ebcda7e7a2fcc6eb /archaeological_finds/tests.py
parent628f8d2489d03862f73d3a41663bc2f5b644384b (diff)
downloadIshtar-55f75a8e8de346991cad442cd78bc3a5973c278a.tar.bz2
Ishtar-55f75a8e8de346991cad442cd78bc3a5973c278a.zip
QA basket: fix add to a shared basket
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 2c78d3efa..cfdcb1585 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -27,6 +27,7 @@ from rest_framework.authtoken.models import Token
from django.conf import settings
from django.contrib.auth.models import User, Permission, ContentType
from django.contrib.gis.geos import GEOSGeometry
+from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.urlresolvers import reverse
@@ -1306,6 +1307,63 @@ class FindQATest(FindInit, TestCase):
self.assertEqual(models.Find.objects.get(pk=find_1.pk).description,
base_desc_1 + u"\n" + extra_desc)
+ def test_basket(self):
+ find_0 = self.finds[0]
+ find_1 = self.finds[1]
+ nb_basket = models.FindBasket.objects.count()
+ url = reverse('find-qa-basket', args=[find_0.pk])
+ c = Client()
+ response = c.get(url)
+ self.assertRedirects(response, '/')
+
+ c.login(username=self.username, password=self.password)
+ response = c.get(url)
+ self.assertEqual(response.status_code, 200)
+ label = "Test - basket"
+ data = {
+ "qa_bf_create_or_update": "create",
+ "qa_bf_label": label
+ }
+ response = c.post(url, data)
+ if response.status_code != 200:
+ self.assertRedirects(response, '/success/')
+ self.assertEqual(
+ nb_basket + 1,
+ models.FindBasket.objects.count())
+ q = models.FindBasket.objects.filter(
+ user=self.user.ishtaruser, label=label)
+ self.assertEqual(q.count(), 1)
+ # no duplicate with same user, same name
+ c.post(url, data)
+ self.assertEqual(q.count(), 1)
+ basket = q.all()[0]
+ self.assertEqual(basket.items.count(), 1)
+
+ # update
+ url = reverse('find-qa-basket', args=[find_1.pk])
+ self.assertEqual(basket.items.count(), 1)
+ data = {
+ "qa_bf_create_or_update": "update",
+ "qa_bf_basket": basket.pk
+ }
+ c.post(url, data)
+ self.assertEqual(basket.items.count(), 2)
+ self.assertIn(find_1, list(basket.items.all()))
+
+ # no permission
+ basket.user = self.alt_user.ishtaruser
+ basket.items.clear()
+ basket.save()
+ self.assertEqual(basket.items.count(), 0)
+ c.post(url, data)
+ # no update
+ self.assertEqual(basket.items.count(), 0)
+
+ # write permission
+ basket.shared_write_with.add(self.user.ishtaruser)
+ c.post(url, data)
+ self.assertEqual(basket.items.count(), 1)
+
def test_packaging(self):
c = Client()
find_0 = self.finds[0]