utils: fix make_url() use by list_to_pick view (fixes #22888)
Return callback to pick view takes an url argument, same name as the first argument to make_url() :/
This commit is contained in:
parent
52929b1d2f
commit
9a824087cc
|
@ -2,9 +2,9 @@ import urlparse
|
|||
from django.utils.http import urlencode
|
||||
|
||||
|
||||
def make_url(url, **kwargs):
|
||||
def make_url(__url, **kwargs):
|
||||
request = kwargs.pop('request', None)
|
||||
parsed = urlparse.urlparse(url)
|
||||
parsed = urlparse.urlparse(__url)
|
||||
query = urlparse.parse_qs(parsed.query)
|
||||
for key, value in kwargs.iteritems():
|
||||
if value is not None:
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
import logging
|
||||
import pytest
|
||||
import django_webtest
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from fargo.fargo.models import UserDocument, Document
|
||||
|
||||
|
||||
class WebTestMixin(django_webtest.WebTestMixin):
|
||||
csrf_checks = False
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def app(request):
|
||||
wtm = WebTestMixin()
|
||||
|
@ -80,3 +85,17 @@ def admin_user(db):
|
|||
user = User.objects.create_superuser('admin', email=None, password='admin')
|
||||
return user
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def document():
|
||||
with open('tests/test_oauth2.txt', 'rb') as f:
|
||||
content = ContentFile(f.read(), 'test_oauth2.txt')
|
||||
|
||||
return Document.objects.get_by_file(content)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def user_doc(document, john_doe):
|
||||
return UserDocument.objects.create(user=john_doe, document=document, filename='Baudelaire.txt')
|
||||
|
||||
|
||||
|
|
|
@ -4,12 +4,11 @@ import pytest
|
|||
from urllib import quote
|
||||
import urlparse
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.http import urlencode
|
||||
|
||||
from fargo.oauth2.models import OAuth2Client, OAuth2Authorize, OAuth2TempFile
|
||||
from fargo.fargo.models import Document, UserDocument
|
||||
from fargo.fargo.models import UserDocument
|
||||
|
||||
from test_manager import login
|
||||
|
||||
|
@ -29,19 +28,6 @@ def oauth2_client():
|
|||
redirect_uris='https://example.net/document https://doc.example.net/ https://example.com')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def document():
|
||||
with open('tests/test_oauth2.txt', 'rb') as f:
|
||||
content = ContentFile(f.read(), 'test_oauth2.txt')
|
||||
|
||||
return Document.objects.get_by_file(content)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def user_doc(document, john_doe):
|
||||
return UserDocument.objects.create(user=john_doe, document=document, filename='Baudelaire.txt')
|
||||
|
||||
|
||||
def assert_error_redirect(url, error):
|
||||
assert urlparse.urlparse(url).query == 'error=%s' % error
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ from webtest import Upload
|
|||
import pytest
|
||||
import urlparse
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
try:
|
||||
import magic
|
||||
except ImportError:
|
||||
|
@ -71,3 +73,13 @@ def test_upload_max_document_box_size(app, private_settings, john_doe):
|
|||
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']
|
||||
|
|
Loading…
Reference in New Issue