Skip to content

Commit eb7d485

Browse files
committed
Implemented redirects from redirector app shoud include all query string data on redirect
close #3066
1 parent de5fab5 commit eb7d485

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import pytest
2+
from django.urls import reverse
3+
from model_bakery import baker
4+
5+
from pythonpro.redirector.models import Redirect, RedirectLink
6+
7+
8+
@pytest.fixture
9+
def redirect(db):
10+
redirect = baker.make(Redirect, url='https://google.com', slug='renzo', use_javascript=False)
11+
baker.make(RedirectLink, redirect=redirect, url='http://python.pro.br')
12+
return redirect
13+
14+
15+
@pytest.fixture
16+
def resp(client, redirect):
17+
return client.get(reverse('redirector:redirect', kwargs={'slug': redirect.slug}), {'utm_source': 'facebook'})
18+
19+
20+
def test_status_code_should_return_302(resp):
21+
assert resp.status_code == 302
22+
23+
24+
def test_redirect_url_with_query_string(resp, redirect):
25+
assert resp.url == f'{redirect.links.first().url}?utm_source=facebook'

pythonpro/redirector/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def redirect(request, slug: str):
99
url = get_redirect_url(redirect)
1010

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

1415
ctx = {'url': url}

0 commit comments

Comments
 (0)