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
import urlparse
from django.core.urlresolvers import reverse
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', 'coin', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.content
if magic is not None:
assert UserDocument.objects.get(filename='monfichier.pdf').document.mime_type == 'text/plain'
assert ' mime-text ' in response2.content
assert ' mime-text-plain' in response2.content
UserDocument.objects.all().delete()
response1 = app.get('/')
form = response1.form
form['content'] = Upload('monfichier.pdf', '%PDF-1.4 ...', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.content
assert '12 bytes' in response2.content
if magic is not None:
assert UserDocument.objects.get(filename='monfichier.pdf').document.mime_type == 'application/pdf'
assert ' mime-application ' in response2.content
assert ' mime-application-pdf' in response2.content
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', 'coin', 'application/pdf')
response2 = form.submit()
assert response2.status_code == 200
assert 'Uploaded file is too big' in response2.content
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', 'coin', 'application/pdf')
response2 = form.submit().follow()
assert 'monfichier.pdf' in response2.content
response1 = app.get('/')
form = response1.forms['send-file']
form['content'] = Upload('monfichier.pdf', 'coin', 'application/pdf')
response2 = form.submit()
assert response2.status_code == 200
assert 'Your document box is full (limit is 4)' in response2.content
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']