diff options
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r-- | archaeological_operations/tests.py | 43 |
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 + |