fix(urls): use path and path converters (#228)

* fix(urls): use path and path converters

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix(urls): change re_path into path

* fix(urls): remove unused imports

* fix(urls): url names

* fix(tests): update reverse

* fix(tags): update reverse

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Johannes Wilm <mail@johanneswilm.org>
This commit is contained in:
0xMRTT 2023-10-16 11:27:12 +02:00 committed by GitHub
parent a9bf7054fc
commit 5e5d6f9c6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 17 deletions

View file

@ -94,7 +94,7 @@ def primary_avatar(user, width=settings.AVATAR_DEFAULT_SIZE, height=None):
else: else:
kwargs["height"] = height kwargs["height"] = height
url = reverse("avatar_render_primary", kwargs=kwargs) url = reverse("avatar:render_primary", kwargs=kwargs)
return """<img src="%s" width="%s" height="%s" alt="%s" />""" % ( return """<img src="%s" width="%s" height="%s" alt="%s" />""" % (
url, url,
width, width,

View file

@ -1,19 +1,24 @@
from django.urls import re_path from django.urls import path
from avatar import views from avatar import views
# For reversing namespaced urls
# https://docs.djangoproject.com/en/4.1/topics/http/urls/#reversing-namespaced-urls
app_name = "avatar"
urlpatterns = [ urlpatterns = [
re_path(r"^add/$", views.add, name="avatar_add"), path("add/", views.add, name="add"),
re_path(r"^change/$", views.change, name="avatar_change"), path("change/", views.change, name="change"),
re_path(r"^delete/$", views.delete, name="avatar_delete"), path("delete/", views.delete, name="delete"),
re_path( # https://docs.djangoproject.com/en/4.1/topics/http/urls/#path-converters
r"^render_primary/(?P<user>[\w\d\@\.\-_]+)/(?P<width>[\d]+)/$", path(
"render_primary/<slug:user>/<int:width>/",
views.render_primary, views.render_primary,
name="avatar_render_primary", name="render_primary",
), ),
re_path( path(
r"^render_primary/(?P<user>[\w\d\@\.\-_]+)/(?P<width>[\d]+)/(?P<height>[\d]+)/$", "render_primary/<slug:user>/<int:width>/<int:height>/",
views.render_primary, views.render_primary,
name="avatar_render_primary", name="render_primary",
), ),
] ]

View file

@ -43,7 +43,7 @@ class AssertSignal:
def upload_helper(o, filename): def upload_helper(o, filename):
f = open(os.path.join(o.testdatapath, filename), "rb") f = open(os.path.join(o.testdatapath, filename), "rb")
response = o.client.post( response = o.client.post(
reverse("avatar_add"), reverse("avatar:add"),
{ {
"avatar": f, "avatar": f,
}, },
@ -165,7 +165,7 @@ class AvatarTests(TestCase):
def test_default_url(self): def test_default_url(self):
response = self.client.get( response = self.client.get(
reverse( reverse(
"avatar_render_primary", "avatar:render_primary",
kwargs={ kwargs={
"user": self.user.username, "user": self.user.username,
"width": 80, "width": 80,
@ -196,7 +196,7 @@ class AvatarTests(TestCase):
receiver = AssertSignal() receiver = AssertSignal()
avatar_deleted.connect(receiver) avatar_deleted.connect(receiver)
response = self.client.post( response = self.client.post(
reverse("avatar_delete"), reverse("avatar:delete"),
{ {
"choices": [avatar[0].id], "choices": [avatar[0].id],
}, },
@ -216,7 +216,7 @@ class AvatarTests(TestCase):
primary = get_primary_avatar(self.user) primary = get_primary_avatar(self.user)
oid = primary.id oid = primary.id
self.client.post( self.client.post(
reverse("avatar_delete"), reverse("avatar:delete"),
{ {
"choices": [oid], "choices": [oid],
}, },
@ -229,7 +229,7 @@ class AvatarTests(TestCase):
def test_change_avatar_get(self): def test_change_avatar_get(self):
self.test_normal_image_upload() self.test_normal_image_upload()
response = self.client.get(reverse("avatar_change")) response = self.client.get(reverse("avatar:change"))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertIsNotNone(response.context["avatar"]) self.assertIsNotNone(response.context["avatar"])
@ -239,7 +239,7 @@ class AvatarTests(TestCase):
old_primary = Avatar.objects.get(user=self.user, primary=True) old_primary = Avatar.objects.get(user=self.user, primary=True)
choice = Avatar.objects.filter(user=self.user, primary=False)[0] choice = Avatar.objects.filter(user=self.user, primary=False)[0]
response = self.client.post( response = self.client.post(
reverse("avatar_change"), reverse("avatar:change"),
{ {
"choice": choice.pk, "choice": choice.pk,
}, },