use new django.url.reverse query kwarg

This commit is contained in:
Thomas Girod 2025-04-11 14:50:25 +02:00
parent 805ffc498f
commit ff220e67c1
6 changed files with 26 additions and 17 deletions

View File

@ -1,7 +1,6 @@
from dataclasses import dataclass from dataclasses import dataclass
from datetime import timedelta from datetime import timedelta
from pathlib import Path from pathlib import Path
from urllib.parse import quote
import pytest import pytest
from django.conf import settings from django.conf import settings
@ -166,9 +165,9 @@ class TestFetchNewsDates(TestCase):
assert dates[1]["news"]["summary"] == markdown(summary_2) assert dates[1]["news"]["summary"] == markdown(summary_2)
def test_fetch(self): def test_fetch(self):
after = quote((now() + timedelta(days=1)).isoformat()) after = (now() + timedelta(days=1)).isoformat()
response = self.client.get( response = self.client.get(
reverse("api:fetch_news_dates") + f"?page_size=3&after={after}" reverse("api:fetch_news_dates", query={"page_size": 3, "after": after})
) )
assert response.status_code == 200 assert response.status_code == 200
dates = response.json()["results"] dates = response.json()["results"]

View File

@ -257,7 +257,7 @@ class TestPageHandling(TestCase):
parent = baker.prepare(Page) parent = baker.prepare(Page)
parent.save(force_lock=True) parent.save(force_lock=True)
response = self.client.get( response = self.client.get(
reverse("core:page_new") + f"?page={parent._full_name}/new" reverse("core:page_new", query={"page": f"{parent._full_name}/new"})
) )
assert response.status_code == 200 assert response.status_code == 200
@ -341,7 +341,9 @@ class TestUserTools:
"""An anonymous user shouldn't have access to the tools page.""" """An anonymous user shouldn't have access to the tools page."""
url = reverse("core:user_tools") url = reverse("core:user_tools")
response = client.get(url) response = client.get(url)
assertRedirects(response, expected_url=reverse("core:login") + f"?next={url}") assertRedirects(
response, expected_url=reverse("core:login", query={"next": url})
)
@pytest.mark.parametrize("username", ["guy", "root", "skia", "comunity"]) @pytest.mark.parametrize("username", ["guy", "root", "skia", "comunity"])
def test_page_is_working(self, client, username): def test_page_is_working(self, client, username):

View File

@ -147,8 +147,8 @@ class TestUserProfilePicture:
reverse( reverse(
"core:file_delete", "core:file_delete",
kwargs={"file_id": user.profile_pict.pk, "popup": ""}, kwargs={"file_id": user.profile_pict.pk, "popup": ""},
) query={"next": user.get_absolute_url()},
+ f"?next={user.get_absolute_url()}" ),
) )
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -72,7 +72,9 @@ class TestSearchUsersAPI(TestSearchUsers):
expected = [u.id for u in self.users[::-1]] expected = [u.id for u in self.users[::-1]]
for term in ["first", "First", "FIRST"]: for term in ["first", "First", "FIRST"]:
response = self.client.get(reverse("api:search_users") + f"?search={term}") response = self.client.get(
reverse("api:search_users", query={"search": term})
)
assert response.status_code == 200 assert response.status_code == 200
assert response.json()["count"] == 11 assert response.json()["count"] == 11
assert [r["id"] for r in response.json()["results"]] == expected assert [r["id"] for r in response.json()["results"]] == expected

View File

@ -633,7 +633,7 @@ class TestCounterStats(TestCase):
def test_not_authenticated_access_fail(self): def test_not_authenticated_access_fail(self):
url = reverse("counter:stats", args=[self.counter.id]) url = reverse("counter:stats", args=[self.counter.id])
response = self.client.get(url) response = self.client.get(url)
assertRedirects(response, reverse("core:login") + f"?next={url}") assertRedirects(response, reverse("core:login", query={"next": url}))
def test_unauthorized_user_fails(self): def test_unauthorized_user_fails(self):
self.client.force_login(baker.make(User)) self.client.force_login(baker.make(User))

View File

@ -111,7 +111,9 @@ class TestUVCreation(TestCase):
def test_create_uv_unauthorized_fail(self): def test_create_uv_unauthorized_fail(self):
# Test with anonymous user # Test with anonymous user
response = self.client.post(self.create_uv_url, create_uv_template(0)) response = self.client.post(self.create_uv_url, create_uv_template(0))
assertRedirects(response, reverse("core:login") + f"?next={self.create_uv_url}") assertRedirects(
response, reverse("core:login", query={"next": self.create_uv_url})
)
# Test with subscribed user # Test with subscribed user
self.client.force_login(self.sli) self.client.force_login(self.sli)
@ -194,7 +196,9 @@ class TestUVDelete(TestCase):
def test_uv_delete_pedagogy_unauthorized_fail(self): def test_uv_delete_pedagogy_unauthorized_fail(self):
# Anonymous user # Anonymous user
response = self.client.post(self.delete_uv_url) response = self.client.post(self.delete_uv_url)
assertRedirects(response, reverse("core:login") + f"?next={self.delete_uv_url}") assertRedirects(
response, reverse("core:login", query={"next": self.delete_uv_url})
)
assert UV.objects.filter(pk=self.uv.pk).exists() assert UV.objects.filter(pk=self.uv.pk).exists()
for user in baker.make(User), subscriber_user.make(): for user in baker.make(User), subscriber_user.make():
@ -248,7 +252,9 @@ class TestUVUpdate(TestCase):
response = self.client.post( response = self.client.post(
self.update_uv_url, create_uv_template(self.bibou.id, code="PA00") self.update_uv_url, create_uv_template(self.bibou.id, code="PA00")
) )
assertRedirects(response, reverse("core:login") + f"?next={self.update_uv_url}") assertRedirects(
response, reverse("core:login", query={"next": self.update_uv_url})
)
# Not subscribed user # Not subscribed user
self.client.force_login(self.guy) self.client.force_login(self.guy)
@ -337,7 +343,7 @@ class TestUVCommentCreationAndDisplay(TestCase):
nb_comments = self.uv.comments.count() nb_comments = self.uv.comments.count()
# Test with anonymous user # Test with anonymous user
response = self.client.post(self.uv_url, create_uv_comment_template(0)) response = self.client.post(self.uv_url, create_uv_comment_template(0))
assertRedirects(response, reverse("core:login") + f"?next={self.uv_url}") assertRedirects(response, reverse("core:login", query={"next": self.uv_url}))
# Test with non subscribed user # Test with non subscribed user
self.client.force_login(self.guy) self.client.force_login(self.guy)
@ -425,7 +431,7 @@ class TestUVCommentDelete(TestCase):
# Anonymous user # Anonymous user
response = self.client.post(url) response = self.client.post(url)
assertRedirects(response, reverse("core:login") + f"?next={url}") assertRedirects(response, reverse("core:login", query={"next": url}))
# Unsbscribed user # Unsbscribed user
for user in baker.make(User), subscriber_user.make(): for user in baker.make(User), subscriber_user.make():
@ -485,7 +491,7 @@ class TestUVCommentUpdate(TestCase):
url = reverse("pedagogy:comment_update", kwargs={"comment_id": self.comment.id}) url = reverse("pedagogy:comment_update", kwargs={"comment_id": self.comment.id})
# Anonymous user # Anonymous user
response = self.client.post(url, self.comment_edit) response = self.client.post(url, self.comment_edit)
assertRedirects(response, reverse("core:login") + f"?next={url}") assertRedirects(response, reverse("core:login", query={"next": url}))
# Unsbscribed user # Unsbscribed user
self.client.force_login(baker.make(User)) self.client.force_login(baker.make(User))
@ -569,7 +575,7 @@ class TestUVModerationForm(TestCase):
url = reverse("pedagogy:moderation") url = reverse("pedagogy:moderation")
# Test with anonymous user # Test with anonymous user
response = self.client.get(url) response = self.client.get(url)
assertRedirects(response, reverse("core:login") + f"?next={url}") assertRedirects(response, reverse("core:login", query={"next": url}))
# Test with unsubscribed user # Test with unsubscribed user
self.client.force_login(self.guy) self.client.force_login(self.guy)
@ -776,7 +782,7 @@ class TestUVCommentReportCreate(TestCase):
response = self.client.post( response = self.client.post(
url, {"comment": self.comment.id, "reporter": 0, "reason": "C'est moche"} url, {"comment": self.comment.id, "reporter": 0, "reason": "C'est moche"}
) )
assertRedirects(response, reverse("core:login") + f"?next={url}") assertRedirects(response, reverse("core:login", query={"next": url}))
assert not UVCommentReport.objects.all().exists() assert not UVCommentReport.objects.all().exists()
def test_notifications(self): def test_notifications(self):