From 19bb6856a29e09793bc45bdece604f6d53c547be Mon Sep 17 00:00:00 2001 From: T'rahk Rokym Date: Sat, 18 Oct 2025 00:02:29 +0200 Subject: [PATCH] Allow zkillboard links without a trailling slash to be pasted without errors --- allianceauth/srp/form.py | 3 +++ allianceauth/srp/tests/test_form.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 allianceauth/srp/tests/test_form.py diff --git a/allianceauth/srp/form.py b/allianceauth/srp/form.py index e13ed922..e00a7932 100644 --- a/allianceauth/srp/form.py +++ b/allianceauth/srp/form.py @@ -34,6 +34,9 @@ class SrpFleetUserRequestForm(forms.Form): _("Invalid Link. Please use zkillboard.com or kb.evetools.org") ) + if re.match(r"^http[s]?:\/\/zkillboard\.com\/", data) and not data.endswith("/"): + data += "/" + # Check if it's an actual kill mail if not any( re.match(regex, data) diff --git a/allianceauth/srp/tests/test_form.py b/allianceauth/srp/tests/test_form.py new file mode 100644 index 00000000..f7cbd427 --- /dev/null +++ b/allianceauth/srp/tests/test_form.py @@ -0,0 +1,27 @@ +from django.test import TestCase + +from allianceauth.srp.form import SrpFleetUserRequestForm + + +class TestForms(TestCase): + + def test_allow_missing_trailing_slash_zkillboard(self): + form = SrpFleetUserRequestForm( + data = { + "killboard_link": "https://zkillboard.com/kill/130429493", + "additional_info": "Details", + } + ) + form.cleaned_data = {"killboard_link": "https://zkillboard.com/kill/130429493"} + + self.assertEqual("https://zkillboard.com/kill/130429493/", form.clean_killboard_link()) + + def test_not_add_trailling_slash_kb_evetools(self): + form = SrpFleetUserRequestForm( + data = { + "killboard_link": "https://kb.evetools.org/kill/130429493", + } + ) + form.cleaned_data = {"killboard_link": "https://kb.evetools.org/kill/130429493"} + + self.assertEqual("https://kb.evetools.org/kill/130429493", form.clean_killboard_link())