pfwb/tests: add test on the push to ged interface

This commit is contained in:
Benjamin Dauvergne 2014-01-30 15:19:44 +01:00
parent c745708f6d
commit 888bb922bf
1 changed files with 59 additions and 2 deletions

View File

@ -37,8 +37,9 @@ from django.test.utils import override_settings
from django.core import management
from django.contrib.auth.models import User
from docbow_project.pfwb.models import TabellioDocType
from docbow_project.docbow.models import FileType, MailingList, Document
from docbow_project.pfwb.models import TabellioDocType, PloneFileType
from docbow_project.docbow.models import (FileType, MailingList, Document,
AttachedFile)
import django_journal
@ -171,3 +172,59 @@ Coucou''', EXPEDITION_EMAIL, RECIPIENT_EMAIL, 'PJD', 'Mouais: monfichier.pdf')
self.assertEquals(Document.objects.get().to_user.count(), 0)
self.assertEquals(Document.objects.get().to_list.count(), 1)
self.assertEquals(Document.objects.get().to_list.all()[0], self.to_list)
class PushDocumentTestCase(TestCase):
def setUp(self):
self.ged_dir = tempfile.mkdtemp()
def tearDown(self):
import shutil
shutil.rmtree(self.ged_dir)
def test_push_document1(self):
from django.core.files.base import ContentFile
import os.path
from glob import glob
with self.settings(DOCBOW_PFWB_GED_DIRECTORY=self.ged_dir):
FROM_USERNAME = 'from_user'
FROM_FIRST_NAME = 'from_first_name'
FROM_LAST_NAME = 'from_last_name'
self.from_user = User.objects.create(username=FROM_USERNAME,
first_name=FROM_FIRST_NAME, last_name=FROM_LAST_NAME)
self.to_user = User.objects.create(username='to_user')
self.filetype = FileType.objects.create(name='filetype')
self.plone_filetype = PloneFileType.objects.create(filetype=self.filetype,
plone_portal_type='plone-portal-type')
DESCRIPTION = 'description'
self.document = Document.objects.create(sender=self.from_user,
filetype=self.filetype,
comment=DESCRIPTION)
self.attached_file = AttachedFile(name='attached-file',
document=self.document, kind=None)
CONTENT = 'content'
self.attached_file.content.save('attached-file',
ContentFile(CONTENT))
pattern1 = '{0}-*-{1}.json'.format(self.document.id,
self.attached_file.name)
pattern2 = '{0}-*-{1}'.format(self.document.id,
self.attached_file.name)
files1 = glob(os.path.join(self.ged_dir, pattern1))
files2 = glob(os.path.join(self.ged_dir, pattern2))
self.assertEquals(len(files1), 1)
self.assertEquals(len(files2), 1)
with file(files2[0]) as f:
self.assertEquals(f.read(), CONTENT)
import json
with file(files1[0]) as f:
json_content = json.loads(f.read())
self.assertIsNotNone(json_content)
self.assertEquals(json_content['document_id'], self.document.id)
self.assertEquals(json_content['plone_portal_type'],
self.plone_filetype.plone_portal_type)
self.assertEquals(json_content['title'],
unicode(self.filetype))
self.assertEquals(json_content['description'], DESCRIPTION)
self.assertEquals(json_content['sender'],
u'{0} {1} ({2})'.format(FROM_FIRST_NAME,
FROM_LAST_NAME, FROM_USERNAME))