diff --git a/templates/zerver/footer.html b/templates/zerver/footer.html index c9b50aff32..08d54791ed 100644 --- a/templates/zerver/footer.html +++ b/templates/zerver/footer.html @@ -26,7 +26,7 @@ diff --git a/zerver/tests/test_signup.py b/zerver/tests/test_signup.py index 6e115f8bc0..cff1a32b61 100644 --- a/zerver/tests/test_signup.py +++ b/zerver/tests/test_signup.py @@ -1726,7 +1726,7 @@ class TestLoginPage(ZulipTestCase): ROOT_SUBDOMAIN_ALIASES=['www']): result = self.client_get("/en/login/") self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/') + self.assertEqual(result.url, '/accounts/find/') @patch('django.http.HttpRequest.get_host') def test_login_page_redirects_for_root_domain(self, mock_get_host): @@ -1737,7 +1737,7 @@ class TestLoginPage(ZulipTestCase): ROOT_SUBDOMAIN_ALIASES=['www']): result = self.client_get("/en/login/") self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/') + self.assertEqual(result.url, '/accounts/find/') mock_get_host.return_value = 'www.testserver.com' with self.settings(REALMS_HAVE_SUBDOMAINS=True, @@ -1746,7 +1746,7 @@ class TestLoginPage(ZulipTestCase): ROOT_SUBDOMAIN_ALIASES=['test']): result = self.client_get("/en/login/") self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/') + self.assertEqual(result.url, '/accounts/find/') @patch('django.http.HttpRequest.get_host') def test_login_page_works_without_subdomains(self, mock_get_host): @@ -1764,15 +1764,15 @@ class TestLoginPage(ZulipTestCase): class TestFindMyTeam(ZulipTestCase): def test_template(self): # type: () -> None - result = self.client_get('/find_account/') + result = self.client_get('/accounts/find/') self.assertIn("Find your Zulip accounts", result.content.decode('utf8')) def test_result(self): # type: () -> None - result = self.client_post('/find_account/', + result = self.client_post('/accounts/find/', dict(emails="iago@zulip.com,cordelia@zulip.com")) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, "/find_account/?emails=iago%40zulip.com%2Ccordelia%40zulip.com") + self.assertEqual(result.url, "/accounts/find/?emails=iago%40zulip.com%2Ccordelia%40zulip.com") result = self.client_get(result.url) content = result.content.decode('utf8') self.assertIn("Emails sent! You will only receive emails", content) @@ -1783,10 +1783,10 @@ class TestFindMyTeam(ZulipTestCase): def test_find_team_ignore_invalid_email(self): # type: () -> None - result = self.client_post('/find_account/', + result = self.client_post('/accounts/find/', dict(emails="iago@zulip.com,invalid_email@zulip.com")) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, "/find_account/?emails=iago%40zulip.com%2Cinvalid_email%40zulip.com") + self.assertEqual(result.url, "/accounts/find/?emails=iago%40zulip.com%2Cinvalid_email%40zulip.com") result = self.client_get(result.url) content = result.content.decode('utf8') self.assertIn("Emails sent! You will only receive emails", content) @@ -1797,7 +1797,7 @@ class TestFindMyTeam(ZulipTestCase): def test_find_team_reject_invalid_email(self): # type: () -> None - result = self.client_post('/find_account/', + result = self.client_post('/accounts/find/', dict(emails="invalid_string")) self.assertEqual(result.status_code, 200) self.assertIn(b"Enter a valid email", result.content) @@ -1805,13 +1805,13 @@ class TestFindMyTeam(ZulipTestCase): self.assertEqual(len(outbox), 0) # Just for coverage on perhaps-unnecessary validation code. - result = self.client_get('/find_account/?emails=invalid') + result = self.client_get('/accounts/find/?emails=invalid') self.assertEqual(result.status_code, 200) def test_find_team_zero_emails(self): # type: () -> None data = {'emails': ''} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertIn('This field is required', result.content.decode('utf8')) self.assertEqual(result.status_code, 200) from django.core.mail import outbox @@ -1820,9 +1820,9 @@ class TestFindMyTeam(ZulipTestCase): def test_find_team_one_email(self): # type: () -> None data = {'emails': self.example_email("hamlet")} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/?emails=hamlet%40zulip.com') + self.assertEqual(result.url, '/accounts/find/?emails=hamlet%40zulip.com') from django.core.mail import outbox self.assertEqual(len(outbox), 1) @@ -1830,9 +1830,9 @@ class TestFindMyTeam(ZulipTestCase): # type: () -> None do_deactivate_user(self.example_user("hamlet")) data = {'emails': self.example_email("hamlet")} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/?emails=hamlet%40zulip.com') + self.assertEqual(result.url, '/accounts/find/?emails=hamlet%40zulip.com') from django.core.mail import outbox self.assertEqual(len(outbox), 0) @@ -1840,25 +1840,25 @@ class TestFindMyTeam(ZulipTestCase): # type: () -> None do_deactivate_realm(get_realm("zulip")) data = {'emails': self.example_email("hamlet")} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/?emails=hamlet%40zulip.com') + self.assertEqual(result.url, '/accounts/find/?emails=hamlet%40zulip.com') from django.core.mail import outbox self.assertEqual(len(outbox), 0) def test_find_team_bot_email(self): # type: () -> None data = {'emails': self.example_email("webhook_bot")} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertEqual(result.status_code, 302) - self.assertEqual(result.url, '/find_account/?emails=webhook-bot%40zulip.com') + self.assertEqual(result.url, '/accounts/find/?emails=webhook-bot%40zulip.com') from django.core.mail import outbox self.assertEqual(len(outbox), 0) def test_find_team_more_than_ten_emails(self): # type: () -> None data = {'emails': ','.join(['hamlet-{}@zulip.com'.format(i) for i in range(11)])} - result = self.client_post('/find_account/', data) + result = self.client_post('/accounts/find/', data) self.assertEqual(result.status_code, 200) self.assertIn("Please enter at most 10", result.content.decode('utf8')) from django.core.mail import outbox diff --git a/zproject/urls.py b/zproject/urls.py index a8d7b28703..5204467bae 100644 --- a/zproject/urls.py +++ b/zproject/urls.py @@ -127,6 +127,9 @@ i18n_urls = [ # Portico-styled page used to provide email confirmation of terms acceptance. url(r'^accounts/accept_terms/$', zerver.views.home.accounts_accept_terms, name='zerver.views.home.accounts_accept_terms'), + # Find your account + url(r'^accounts/find/$', zerver.views.registration.find_account, name='zerver.views.registration.find_account'), + # Realm Creation url(r'^create_realm/$', zerver.views.registration.create_realm, name='zerver.views.create_realm'), url(r'^create_realm/(?P[\w]+)$', zerver.views.registration.create_realm, name='zerver.views.create_realm'), @@ -154,7 +157,6 @@ i18n_urls = [ url(r'^for/open-source/$', TemplateView.as_view(template_name='zerver/for-open-source.html')), url(r'^for/companies/$', TemplateView.as_view(template_name='zerver/for-companies.html')), url(r'^for/working-groups-and-communities/$', TemplateView.as_view(template_name='zerver/for-working-groups-and-communities.html')), - url(r'^find_account/$', zerver.views.registration.find_account, name='zerver.views.registration.find_account'), # Terms of service and privacy pages. url(r'^terms/$', TemplateView.as_view(template_name='zerver/terms.html'), name='terms'),