auth: Fix devlogin "All realms" view.

This was apparently accidentally broken (making it 500) by the
refactoring in 9efda71a4b.
This commit is contained in:
Tim Abbott
2019-05-21 14:37:21 -07:00
parent 7c7992f56b
commit 6a42280e31
2 changed files with 15 additions and 1 deletions

View File

@@ -1963,19 +1963,30 @@ class TestDevAuthBackend(ZulipTestCase):
def test_choose_realm(self) -> None: def test_choose_realm(self) -> None:
result = self.client_post('/devlogin/', subdomain="zulip") result = self.client_post('/devlogin/', subdomain="zulip")
self.assertEqual(result.status_code, 200)
self.assert_in_success_response(["Click on a user to log in to Zulip Dev!"], result) self.assert_in_success_response(["Click on a user to log in to Zulip Dev!"], result)
self.assert_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result) self.assert_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result)
result = self.client_post('/devlogin/', subdomain="") result = self.client_post('/devlogin/', subdomain="")
self.assertEqual(result.status_code, 200)
self.assert_in_success_response(["Click on a user to log in!"], result) self.assert_in_success_response(["Click on a user to log in!"], result)
self.assert_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result) self.assert_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result)
self.assert_in_success_response(["starnine@mit.edu", "espuser@mit.edu"], result) self.assert_in_success_response(["starnine@mit.edu", "espuser@mit.edu"], result)
result = self.client_post('/devlogin/', {'new_realm': 'all_realms'},
subdomain="zephyr")
self.assertEqual(result.status_code, 200)
self.assert_in_success_response(["starnine@mit.edu", "espuser@mit.edu"], result)
self.assert_in_success_response(["Click on a user to log in!"], result)
self.assert_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result)
data = {'new_realm': 'zephyr'} data = {'new_realm': 'zephyr'}
result = self.client_post('/devlogin/', data, subdomain="zulip") result = self.client_post('/devlogin/', data, subdomain="zulip")
self.assertEqual(result.status_code, 302) self.assertEqual(result.status_code, 302)
self.assertEqual(result.url, "http://zephyr.testserver") self.assertEqual(result.url, "http://zephyr.testserver")
result = self.client_get('/devlogin/', subdomain="zephyr") result = self.client_get('/devlogin/', subdomain="zephyr")
self.assertEqual(result.status_code, 200)
self.assert_in_success_response(["starnine@mit.edu", "espuser@mit.edu"], result) self.assert_in_success_response(["starnine@mit.edu", "espuser@mit.edu"], result)
self.assert_in_success_response(["Click on a user to log in to MIT!"], result) self.assert_in_success_response(["Click on a user to log in to MIT!"], result)
self.assert_not_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result) self.assert_not_in_success_response(["iago@zulip.com", "hamlet@zulip.com"], result)

View File

@@ -707,7 +707,10 @@ def login_page(request: HttpRequest, **kwargs: Any) -> HttpResponse:
extra_context = kwargs.pop('extra_context', {}) extra_context = kwargs.pop('extra_context', {})
if dev_auth_enabled() and kwargs.get("template_name") == "zerver/dev_login.html": if dev_auth_enabled() and kwargs.get("template_name") == "zerver/dev_login.html":
if 'new_realm' in request.POST: if 'new_realm' in request.POST:
try:
realm = get_realm(request.POST['new_realm']) realm = get_realm(request.POST['new_realm'])
except Realm.DoesNotExist:
realm = None
add_dev_login_context(realm, extra_context) add_dev_login_context(realm, extra_context)
if realm and 'new_realm' in request.POST: if realm and 'new_realm' in request.POST: