summaryrefslogtreecommitdiff
path: root/archaeological_operations/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-17 21:36:00 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-17 21:36:00 +0200
commit8523cbcc78fbd1366a256c190e2a0508d5eecee8 (patch)
treecbaf3df8199dedcb6e79682f84671340dfc65ea4 /archaeological_operations/tests.py
parent098842140e78650b82e114e00382cb352e1a3936 (diff)
downloadIshtar-8523cbcc78fbd1366a256c190e2a0508d5eecee8.tar.bz2
Ishtar-8523cbcc78fbd1366a256c190e2a0508d5eecee8.zip
Document generation: check permission - test
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r--archaeological_operations/tests.py43
1 files changed, 39 insertions, 4 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 0b466c48c..a1c0781fc 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -19,6 +19,8 @@
import json
import datetime
+import StringIO
+import zipfile
from django.conf import settings
from django.core.files.uploadedfile import SimpleUploadedFile
@@ -33,7 +35,7 @@ from archaeological_operations import views
from ishtar_common.models import OrganizationType, Organization, ItemKey, \
ImporterType, IshtarUser, TargetKey, ImporterModel, IshtarSiteProfile, \
- Town, ImporterColumn, Person
+ Town, ImporterColumn, Person, DocumentTemplate
from archaeological_context_records.models import Unit
from ishtar_common import forms_common
@@ -245,7 +247,8 @@ class ImportOperationTest(ImportTest, TestCase):
self.assertEqual(len(impt.errors), 2)
self.assertTrue(
"Importer configuration error" in impt.errors[0]['error'] or
- "Erreur de configuration de l\'importeur" in impt.errors[0]['error']
+ "Erreur de configuration de l\'importeur" in
+ impt.errors[0]['error']
)
def test_model_limitation(self):
@@ -990,7 +993,7 @@ class OperationSearchTest(TestCase, OperationInitTest):
def create_administrativact(user, operation):
act_type, created = models.ActType.objects.get_or_create(
- txt_idx='act_type')
+ txt_idx='act_type_O', intented_to='O')
dct = {'history_modifier': user,
'act_type': act_type,
'operation': operation,
@@ -1011,7 +1014,7 @@ class RegisterTest(TestCase, OperationInitTest):
def setUp(self):
self.username, self.password, self.user = create_superuser()
self.operations = self.create_operation(self.user)
- self.act_types, self.operations = create_administrativact(
+ self.act_types, self.admin_acts = create_administrativact(
self.user, self.operations[0])
def testSearch(self):
@@ -1025,6 +1028,38 @@ class RegisterTest(TestCase, OperationInitTest):
response = c.get(reverse('get-administrativeact'), {'indexed': '2'})
self.assertTrue(json.loads(response.content)['total'] == 1)
+ def test_document_generation(self):
+ tpl = open(
+ settings.ROOT_PATH +
+ '../archaeological_operations/tests/document_reference.odt',
+ 'rb')
+ template = SimpleUploadedFile(tpl.name, tpl.read())
+ doc = DocumentTemplate.objects.create(
+ name="Test",
+ associated_object_name=DocumentTemplate.CLASSNAMES[0][0],
+ available=True,
+ template=template
+ )
+ self.act_types[0].associated_template.add(doc)
+
+ c = Client()
+ data = {'pk': self.admin_acts[0].pk, 'document_template': doc.pk}
+ response = c.post(reverse('operation-administrativeact-document'), data)
+ # no result when no authentication
+ self.assertEqual(response.content, "")
+ c.login(username=self.username, password=self.password)
+ response = c.post(reverse('operation-administrativeact-document'), data)
+ try:
+ f = StringIO.StringIO(response.content)
+ z = zipfile.ZipFile(f)
+ self.assertIsNone(z.testzip())
+ content = z.open('content.xml')
+ self.assertIn('2014-05-12', content.read())
+ finally:
+ content.close()
+ z.close()
+ f.close()
+
class OperationWizardCreationTest(WizardTest, OperationInitTest, TestCase):
fixtures = [settings.ROOT_PATH +