From c6d7bbc4642ef98bf6546e0afea600d9078f8787 Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Fri, 29 Jul 2016 11:35:35 +0200 Subject: [PATCH] replace slashes by hyphen in filename --- fargo/fargo/models.py | 5 +++++ tests/test_api.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/fargo/fargo/models.py b/fargo/fargo/models.py index 0f6032b..807e49c 100644 --- a/fargo/fargo/models.py +++ b/fargo/fargo/models.py @@ -25,6 +25,7 @@ class Origin(models.Model): def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.label) + return super(Origin, self).save(*args, **kwargs) def __unicode__(self): @@ -60,6 +61,10 @@ class UserDocument(models.Model): verbose_name_plural = _('user documents') ordering = ('-created', 'user') + def save(self, *args, **kwargs): + self.filename = self.filename.replace('/', '-') + return super(UserDocument, self).save(*args, **kwargs) + def get_download_url(self): return reverse('download', kwargs={'pk': self.id, 'filename': self.filename}) diff --git a/tests/test_api.py b/tests/test_api.py index 7412a9a..bdfee46 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -132,3 +132,18 @@ def test_push_document_max_document_box_size(app, private_settings, admin_user, assert response.json['errors'].keys() == ['__all__'] assert response.json['errors']['__all__'][0]['code'] == 'box-is-full' assert response.json['errors']['__all__'][0]['limit'] == 4 + + +def test_push_document_slashed_name(app, admin_user, john_doe): + login(app) + url = reverse('fargo-api-push-document') + data = { + 'user_email': john_doe.email, + 'origin': 'wcs', + 'file_b64_content': base64.b64encode('coin'), + 'file_name': 'monfichier 17/08/2016.pdf', + } + response = app.post_json(url, data, status=200) + assert response.json['result'] == 1 + assert models.Document.objects.count() == 1 + assert models.UserDocument.objects.first().filename == 'monfichier 17-08-2016.pdf' -- 2.8.1