Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions pythonpro/redirector/tests/test_redirect_by_query_string.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import pytest
from django.urls import reverse
from model_bakery import baker

from pythonpro.redirector.models import Redirect, RedirectLink


@pytest.fixture
def redirect(db):
redirect = baker.make(Redirect, url='https://google.com', slug='renzo', use_javascript=False)
baker.make(RedirectLink, redirect=redirect, url='http://python.pro.br')
return redirect


@pytest.fixture
def resp(client, redirect):
return client.get(reverse('redirector:redirect', kwargs={'slug': redirect.slug}), {'utm_source': 'facebook'})


def test_status_code_should_return_302(resp):
assert resp.status_code == 302


def test_redirect_url_with_query_string(resp, redirect):
assert resp.url == f'{redirect.links.first().url}?utm_source=facebook'
1 change: 1 addition & 0 deletions pythonpro/redirector/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ def redirect(request, slug: str):
url = get_redirect_url(redirect)

if redirect.use_javascript is False:
url = f'{url}?{request.GET.urlencode()}'
return redirect_url(url)

ctx = {'url': url}
Expand Down