From 4015e8ed352be5d87a6b9051ad3ab0dced7e9c21 Mon Sep 17 00:00:00 2001 From: Adrien Thiery Date: Thu, 17 Aug 2023 14:47:36 +0200 Subject: [PATCH] fix: url validator considers urls with /#/ as valid --- src/validators/url.py | 1 + tests/test_url.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/validators/url.py b/src/validators/url.py index 4ecb5826..16698b1f 100644 --- a/src/validators/url.py +++ b/src/validators/url.py @@ -116,6 +116,7 @@ def _validate_optionals(path: str, query: str, fragment: str): if query: optional_segments &= bool(_query_regex().match(query)) if fragment: + fragment = fragment.lstrip("/") if fragment.startswith("/") else fragment optional_segments &= all(char_to_avoid not in fragment for char_to_avoid in ("/", "?")) return optional_segments diff --git a/tests/test_url.py b/tests/test_url.py index b10ba18b..62332f5a 100644 --- a/tests/test_url.py +++ b/tests/test_url.py @@ -84,6 +84,7 @@ "https://travel-usa.com/wisconsin/旅行/", "http://:::::::::::::@exmp.com", "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", + "https://exchange.jetswap.finance/#/swap", # when simple_host=True # "http://localhost", # "http://localhost:8000",