Skip to content

Commit a45329d

Browse files
committed
Fix case sensitivity in validator
1 parent 880d87f commit a45329d

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/marshmallow/validate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def __init__(
187187
self.relative = relative
188188
self.absolute = absolute
189189
self.error: str = error or self.default_message
190-
self.schemes = schemes or self.default_schemes
190+
self.schemes = {s.lower() for s in schemes} if schemes else self.default_schemes
191191
self.require_tld = require_tld
192192

193193
def _repr_args(self) -> str:

tests/test_validate.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,14 @@ def test_url_custom_scheme():
205205
assert validator(url) == url
206206

207207

208+
def test_url_custom_scheme_case_insensitive():
209+
validator = validate.URL(schemes={"HTTP"})
210+
assert validator("http://example.com") == "http://example.com"
211+
212+
validator = validate.URL(schemes={"HtTp"})
213+
assert validator("hTtP://example.com") == "hTtP://example.com"
214+
215+
208216
@pytest.mark.parametrize(
209217
"valid_url",
210218
(

0 commit comments

Comments
 (0)