Skip to content

Commit 62565ad

Browse files
Ignore missing URL parts in NavItem activity check (#172)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 0ebef8b commit 62565ad

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/django_simple_nav/nav.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,8 @@ def get_active(self, request: HttpRequest) -> bool:
140140
parsed_url = urlparse(url)
141141
parsed_request = urlparse(request.build_absolute_uri())
142142

143-
if (
144-
parsed_url.scheme != parsed_request.scheme
145-
or parsed_url.netloc != parsed_request.netloc
143+
if (parsed_url.scheme and (parsed_url.scheme != parsed_request.scheme)) or (
144+
parsed_url.netloc and (parsed_url.netloc != parsed_request.netloc)
146145
):
147146
return False
148147

tests/test_navitem.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,14 @@ def test_active_different_domain(rf):
156156
assert item.get_active(req) is False
157157

158158

159+
def test_active_no_scheme_no_netloc(rf):
160+
item = NavItem(title=..., url="/test/")
161+
162+
req = rf.get("/test")
163+
164+
assert item.get_active(req) is True
165+
166+
159167
@pytest.mark.parametrize("append_slash", [True, False])
160168
def test_active_append_slash_setting(append_slash, rf):
161169
item = NavItem(title=..., url="http://testserver/test")

0 commit comments

Comments
 (0)