fargo/tests/test_public.py

86 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
from webtest import Upload
import pytest
from django.core.urlresolvers import reverse
from django.utils.six.moves.urllib import parse as urlparse
try:
import magic
except ImportError:
magic = None
from fargo.fargo.models import UserDocument
pytestmark = pytest.mark.django_db
from test_manager import login
def test_unlogged(app):
assert urlparse.urlparse(app.get('/', status=302).location).path == '/login/'
def test_upload(app, john_doe):
login(app, user=john_doe)
response1 = app.get('/')
form = response1.form
form['content'] = Upload('monfichier.pdf', b'coin', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.text
if magic is not None:
assert UserDocument.objects.get(filename='monfichier.pdf').document.mime_type == 'text/plain'
assert ' mime-text ' in response2.text
assert ' mime-text-plain' in response2.text
UserDocument.objects.all().delete()
response1 = app.get('/')
form = response1.form
form['content'] = Upload('monfichier.pdf', b'%PDF-1.4 ...', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.text
assert u'12 bytes' in response2.text
if magic is not None:
assert UserDocument.objects.get(filename='monfichier.pdf').document.mime_type == 'application/pdf'
assert ' mime-application ' in response2.text
assert ' mime-application-pdf' in response2.text
def test_upload_max_size(app, private_settings, john_doe):
private_settings.FARGO_MAX_DOCUMENT_SIZE = 1
login(app, user=john_doe)
response1 = app.get('/')
form = response1.form
form['content'] = Upload('monfichier.pdf', b'coin', 'application/pdf')
response2 = form.submit()
assert response2.status_code == 200
assert 'Uploaded file is too big' in response2.text
def test_upload_max_document_box_size(app, private_settings, john_doe):
private_settings.FARGO_MAX_DOCUMENT_BOX_SIZE = 4
login(app, user=john_doe)
response1 = app.get('/')
form = response1.form
form['content'] = Upload('monfichier.pdf', b'coin', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.text
response1 = app.get('/')
form = response1.forms['send-file']
form['content'] = Upload('monfichier.pdf', b'coin', 'application/pdf')
response2 = form.submit()
assert response2.status_code == 200
assert 'Your document box is full (limit is 4)' in response2.text
def test_pick(app, private_settings, john_doe, user_doc):
login(app, user=john_doe)
return_url = 'http://client.org/callback/'
response = app.get(reverse('list_to_pick') + '?pick=' + return_url)
response = response.forms[0].submit('Pick')
assert response['Location'].startswith(return_url)
assert '?url=' in response['Location']