return hash(str(self))
def __eq__(self, other: typing.Any) -> bool:
- return isinstance(other, URL) and str(self) == str(other)
+ return isinstance(other, (URL, str)) and str(self) == str(other)
def __str__(self) -> str:
return self.components.unsplit()
assert new.scheme == "http"
+def test_url_eq_str():
+ url = URL("https://example.org:123/path/to/somewhere?abc=123#anchor")
+ assert url == "https://example.org:123/path/to/somewhere?abc=123#anchor"
+ assert str(url) == url
+
+
def test_url__params():
url = URL("https://example.org:123/path/to/somewhere", params={"a": "123"})
assert str(url) == "https://example.org:123/path/to/somewhere?a=123"