From dee427713e63b7014358e2135ccfff75dc6f1149 Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 4 Dec 2015 12:50:06 +0800 Subject: [PATCH] patch for reverse lazy url in wagtailadmin menu --- wagtail/wagtailadmin/menu.py | 2 +- wagtail/wagtailadmin/tests/tests.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/wagtail/wagtailadmin/menu.py b/wagtail/wagtailadmin/menu.py index 57ff92d8c6..8afec70c24 100644 --- a/wagtail/wagtailadmin/menu.py +++ b/wagtail/wagtailadmin/menu.py @@ -35,7 +35,7 @@ class MenuItem(with_metaclass(MediaDefiningClass)): return True def is_active(self, request): - return request.path.startswith(self.url) + return request.path.startswith(text_type(self.url)) def render_html(self, request): return render_to_string(self.template, { diff --git a/wagtail/wagtailadmin/tests/tests.py b/wagtail/wagtailadmin/tests/tests.py index b24f4a608b..0ef9211182 100644 --- a/wagtail/wagtailadmin/tests/tests.py +++ b/wagtail/wagtailadmin/tests/tests.py @@ -15,6 +15,10 @@ from wagtail.tests.utils import WagtailTestUtils from wagtail.wagtailcore.models import Page from wagtail.wagtailadmin.utils import send_mail +from django.core.urlresolvers import reverse_lazy +from wagtail.wagtailadmin.menu import MenuItem +from django.utils.translation import ugettext_lazy as _ + class TestHome(TestCase, WagtailTestUtils): def setUp(self): @@ -193,5 +197,15 @@ class TestTagsAutocomplete(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], 'application/json') data = json.loads(response.content.decode('utf-8')) - self.assertEqual(data, []) + + +class TestMenuItem(TestCase, WagtailTestUtils): + def setUp(self): + self.login() + response = self.client.get(reverse('wagtailadmin_home')) + self.request = response.wsgi_request + + def test_menuitem_reverse_lazy_url_pass(self): + menuitem = MenuItem(_('Test'), reverse_lazy('wagtailadmin_home')) + self.assertEqual(menuitem.is_active(self.request), True)