diff --git a/readthedocs/profiles/urls/public.py b/readthedocs/profiles/urls/public.py index 028b66caa28..2a9c458e6fd 100644 --- a/readthedocs/profiles/urls/public.py +++ b/readthedocs/profiles/urls/public.py @@ -7,7 +7,7 @@ urlpatterns = [ - url(r'^(?P[\w@.-]+)/$', + url(r'^(?P[+\w@.-]+)/$', views.profile_detail, {'template_name': 'profiles/public/profile_detail.html'}, name='profiles_profile_detail'), diff --git a/readthedocs/rtd_tests/tests/test_urls.py b/readthedocs/rtd_tests/tests/test_urls.py index 21460da8f85..27a14a27b99 100644 --- a/readthedocs/rtd_tests/tests/test_urls.py +++ b/readthedocs/rtd_tests/tests/test_urls.py @@ -51,3 +51,25 @@ def test_version_url_with_caps(self): kwargs={'type_': 'pdf', 'version_slug': u'1.4.X', 'project_slug': u'django'} ) self.assertTrue(url) + + +class TestProfileDetailURLs(TestCase): + + def test_profile_detail_url(self): + url = reverse( + 'profiles_profile_detail', + kwargs={'username': 'foo+bar'} + ) + self.assertEqual(url, '/profiles/foo+bar/') + + url = reverse( + 'profiles_profile_detail', + kwargs={'username': 'abc+def@ghi.jkl'} + ) + self.assertEqual(url, '/profiles/abc+def@ghi.jkl/') + + url = reverse( + 'profiles_profile_detail', + kwargs={'username': 'abc-def+ghi'} + ) + self.assertEqual(url, '/profiles/abc-def+ghi/')