mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
tests: Extract and use assert_logged_in_user_id test helper.
This cleans up the pattern for how we check which user is logged in during Zulip's backend unit tests to be much more readable (replacing the arcane session code that does this check).
This commit is contained in:
@@ -22,6 +22,7 @@ from two_factor.models import PhoneDevice
|
||||
from zerver.lib.initial_password import initial_password
|
||||
from zerver.lib.utils import is_remote_server
|
||||
from zerver.lib.users import get_api_key
|
||||
from zerver.lib.sessions import get_session_dict_user
|
||||
|
||||
from zerver.lib.actions import (
|
||||
check_send_message, create_stream_if_needed, bulk_add_subscriptions,
|
||||
@@ -559,6 +560,13 @@ class ZulipTestCase(TestCase):
|
||||
for substring in substrings:
|
||||
self.assertNotIn(substring, decoded)
|
||||
|
||||
def assert_logged_in_user_id(self, user_id: Optional[int]) -> None:
|
||||
"""
|
||||
Verifies the user currently logged in for the test client has the provided user_id.
|
||||
Pass None to verify no user is logged in.
|
||||
"""
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_id)
|
||||
|
||||
def webhook_fixture_data(self, type: str, action: str, file_type: str='json') -> str:
|
||||
fn = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
|
||||
@@ -37,7 +37,6 @@ from zerver.lib.validator import validate_login_email, \
|
||||
from zerver.lib.request import JsonableError
|
||||
from zerver.lib.users import get_all_api_keys
|
||||
from zerver.lib.initial_password import initial_password
|
||||
from zerver.lib.sessions import get_session_dict_user
|
||||
from zerver.lib.test_classes import (
|
||||
ZulipTestCase,
|
||||
)
|
||||
@@ -742,7 +741,7 @@ class SocialAuthBase(ZulipTestCase):
|
||||
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = get_user(email, realm)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_social_auth_registration_using_multiuse_invite(self) -> None:
|
||||
"""If the user doesn't exist yet, social auth can be used to register an account"""
|
||||
@@ -815,7 +814,7 @@ class SocialAuthBase(ZulipTestCase):
|
||||
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = get_user(email, realm)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_social_auth_registration_without_is_signup(self) -> None:
|
||||
"""If `is_signup` is not set then a new account isn't created"""
|
||||
@@ -1377,7 +1376,7 @@ class GoogleSubdomainLoginTest(GoogleOAuthTest):
|
||||
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = get_user(email, realm)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_google_oauth2_registration_using_multiuse_invite(self) -> None:
|
||||
"""If the user doesn't exist yet, Google auth can be used to register an account"""
|
||||
@@ -1455,7 +1454,7 @@ class GoogleSubdomainLoginTest(GoogleOAuthTest):
|
||||
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = get_user(email, realm)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
self.assertEqual(sorted(self.get_streams(email, realm)), stream_names)
|
||||
|
||||
class GoogleLoginTest(GoogleOAuthTest):
|
||||
@@ -1857,7 +1856,7 @@ class TestTwoFactor(ZulipTestCase):
|
||||
data = {'direct_email': email}
|
||||
result = self.client_post('/accounts/login/local/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
# User logs in but when otp device doesn't exist.
|
||||
self.assertNotIn('otp_device_id', self.client.session.keys())
|
||||
|
||||
@@ -1866,7 +1865,7 @@ class TestTwoFactor(ZulipTestCase):
|
||||
data = {'direct_email': email}
|
||||
result = self.client_post('/accounts/login/local/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
# User logs in when otp device exists.
|
||||
self.assertIn('otp_device_id', self.client.session.keys())
|
||||
|
||||
@@ -1941,7 +1940,7 @@ class TestDevAuthBackend(ZulipTestCase):
|
||||
data = {'direct_email': email}
|
||||
result = self.client_post('/accounts/login/local/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_login_success_with_2fa(self) -> None:
|
||||
user_profile = self.example_user('hamlet')
|
||||
@@ -1952,7 +1951,7 @@ class TestDevAuthBackend(ZulipTestCase):
|
||||
result = self.client_post('/accounts/login/local/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(result.url, 'http://zulip.testserver')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
self.assertIn('otp_device_id', list(self.client.session.keys()))
|
||||
|
||||
def test_redirect_to_next_url(self) -> None:
|
||||
@@ -1984,7 +1983,7 @@ class TestDevAuthBackend(ZulipTestCase):
|
||||
|
||||
result = self.client_post('/accounts/login/local/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_choose_realm(self) -> None:
|
||||
result = self.client_post('/devlogin/', subdomain="zulip")
|
||||
@@ -2055,7 +2054,7 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipRemoteUserBackend',)):
|
||||
result = self.client_post('/accounts/login/sso/', REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_login_success_with_sso_append_domain(self) -> None:
|
||||
username = 'hamlet'
|
||||
@@ -2064,20 +2063,20 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
SSO_APPEND_DOMAIN='zulip.com'):
|
||||
result = self.client_post('/accounts/login/sso/', REMOTE_USER=username)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_login_failure(self) -> None:
|
||||
email = self.example_email("hamlet")
|
||||
result = self.client_post('/accounts/login/sso/', REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 200) # This should ideally be not 200.
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_failure_due_to_nonexisting_user(self) -> None:
|
||||
email = 'nonexisting@zulip.com'
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipRemoteUserBackend',)):
|
||||
result = self.client_post('/accounts/login/sso/', REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_in_response("No account found for", result)
|
||||
|
||||
def test_login_failure_due_to_invalid_email(self) -> None:
|
||||
@@ -2098,7 +2097,7 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
result = self.client_post('http://testserver:9080/accounts/login/sso/',
|
||||
REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_in_response("You need an invitation to join this organization.", result)
|
||||
|
||||
def test_login_failure_due_to_empty_subdomain(self) -> None:
|
||||
@@ -2108,7 +2107,7 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
result = self.client_post('http://testserver:9080/accounts/login/sso/',
|
||||
REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_in_response("You need an invitation to join this organization.", result)
|
||||
|
||||
def test_login_success_under_subdomains(self) -> None:
|
||||
@@ -2119,7 +2118,7 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
AUTHENTICATION_BACKENDS=('zproject.backends.ZulipRemoteUserBackend',)):
|
||||
result = self.client_post('/accounts/login/sso/', REMOTE_USER=email)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertIs(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
@override_settings(SEND_LOGIN_EMAILS=True)
|
||||
@override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipRemoteUserBackend',))
|
||||
@@ -2135,14 +2134,14 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
dict(mobile_flow_otp="1234"),
|
||||
REMOTE_USER=email,
|
||||
HTTP_USER_AGENT = "ZulipAndroid")
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_json_error_contains(result, "Invalid OTP", 400)
|
||||
|
||||
result = self.client_post('/accounts/login/sso/',
|
||||
dict(mobile_flow_otp="invalido" * 8),
|
||||
REMOTE_USER=email,
|
||||
HTTP_USER_AGENT = "ZulipAndroid")
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_json_error_contains(result, "Invalid OTP", 400)
|
||||
|
||||
result = self.client_post('/accounts/login/sso/',
|
||||
@@ -2178,14 +2177,14 @@ class TestZulipRemoteUserBackend(ZulipTestCase):
|
||||
dict(mobile_flow_otp="1234"),
|
||||
REMOTE_USER=remote_user,
|
||||
HTTP_USER_AGENT = "ZulipAndroid")
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_json_error_contains(result, "Invalid OTP", 400)
|
||||
|
||||
result = self.client_post('/accounts/login/sso/',
|
||||
dict(mobile_flow_otp="invalido" * 8),
|
||||
REMOTE_USER=remote_user,
|
||||
HTTP_USER_AGENT = "ZulipAndroid")
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
self.assert_json_error_contains(result, "Invalid OTP", 400)
|
||||
|
||||
result = self.client_post('/accounts/login/sso/',
|
||||
@@ -2248,7 +2247,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
data = {'json_web_token': web_token}
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_login_failure_when_user_is_missing(self) -> None:
|
||||
payload = {'realm': 'zulip.com'}
|
||||
@@ -2294,7 +2293,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
data = {'json_web_token': web_token}
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assertEqual(result.status_code, 200) # This should ideally be not 200.
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
# The /accounts/login/jwt/ endpoint should also handle the case
|
||||
# where the authentication attempt throws UserProfile.DoesNotExist.
|
||||
@@ -2303,7 +2302,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
side_effect=UserProfile.DoesNotExist("Do not exist")):
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assertEqual(result.status_code, 200) # This should ideally be not 200.
|
||||
self.assertIs(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_failure_due_to_wrong_subdomain(self) -> None:
|
||||
payload = {'user': 'hamlet', 'realm': 'zulip.com'}
|
||||
@@ -2316,7 +2315,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
data = {'json_web_token': web_token}
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assert_json_error_contains(result, "Wrong subdomain", 400)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_failure_due_to_empty_subdomain(self) -> None:
|
||||
payload = {'user': 'hamlet', 'realm': 'zulip.com'}
|
||||
@@ -2329,7 +2328,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
data = {'json_web_token': web_token}
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assert_json_error_contains(result, "Wrong subdomain", 400)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), None)
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_success_under_subdomains(self) -> None:
|
||||
payload = {'user': 'hamlet', 'realm': 'zulip.com'}
|
||||
@@ -2342,7 +2341,7 @@ class TestJWTLogin(ZulipTestCase):
|
||||
result = self.client_post('/accounts/login/jwt/', data)
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = self.example_user('hamlet')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
class ZulipLDAPTestCase(ZulipTestCase):
|
||||
def setUp(self) -> None:
|
||||
|
||||
@@ -7,7 +7,6 @@ from mock import patch
|
||||
from typing import Any, Dict
|
||||
|
||||
from zerver.lib.initial_password import initial_password
|
||||
from zerver.lib.sessions import get_session_dict_user
|
||||
from zerver.lib.test_classes import ZulipTestCase
|
||||
from zerver.lib.test_helpers import MockLDAP, get_test_image_file
|
||||
from zerver.lib.users import get_all_api_keys
|
||||
@@ -78,7 +77,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
||||
self.logout()
|
||||
self.login(self.example_email("hamlet"), "foobar1")
|
||||
user_profile = self.example_user('hamlet')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_illegal_name_changes(self) -> None:
|
||||
user = self.example_user('hamlet')
|
||||
|
||||
@@ -59,7 +59,6 @@ from zerver.lib.test_helpers import find_key_by_email, queries_captured, \
|
||||
from zerver.lib.test_classes import (
|
||||
ZulipTestCase,
|
||||
)
|
||||
from zerver.lib.sessions import get_session_dict_user
|
||||
from zerver.lib.name_restrictions import is_disposable_domain
|
||||
from zerver.context_processors import common_context
|
||||
|
||||
@@ -199,7 +198,7 @@ class PasswordResetTest(ZulipTestCase):
|
||||
# log back in with new password
|
||||
self.login(email, password='new_password')
|
||||
user_profile = self.example_user('hamlet')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
# make sure old password no longer works
|
||||
self.login(email, password=old_password, fails=True)
|
||||
@@ -403,7 +402,7 @@ class LoginTest(ZulipTestCase):
|
||||
def test_login(self) -> None:
|
||||
self.login(self.example_email("hamlet"))
|
||||
user_profile = self.example_user('hamlet')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_login_deactivated_user(self) -> None:
|
||||
user_profile = self.example_user('hamlet')
|
||||
@@ -411,19 +410,19 @@ class LoginTest(ZulipTestCase):
|
||||
result = self.login_with_return(self.example_email("hamlet"), "xxx")
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assert_in_response("Your account is no longer active.", result)
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_bad_password(self) -> None:
|
||||
email = self.example_email("hamlet")
|
||||
result = self.login_with_return(email, password="wrongpassword")
|
||||
self.assert_in_success_response([email], result)
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_nonexist_user(self) -> None:
|
||||
result = self.login_with_return("xxx@zulip.com", "xxx")
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assert_in_response("Please enter a correct email and password", result)
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_wrong_subdomain(self) -> None:
|
||||
with patch("logging.warning") as mock_warning:
|
||||
@@ -432,14 +431,14 @@ class LoginTest(ZulipTestCase):
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assert_in_response("Your Zulip account is not a member of the "
|
||||
"organization associated with this subdomain.", result)
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_login_invalid_subdomain(self) -> None:
|
||||
result = self.login_with_return(self.example_email("hamlet"), "xxx",
|
||||
subdomain="invalid")
|
||||
self.assertEqual(result.status_code, 404)
|
||||
self.assert_in_response("There is no Zulip organization hosted at this subdomain.", result)
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_register(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
@@ -457,7 +456,7 @@ class LoginTest(ZulipTestCase):
|
||||
# Ensure the number of queries we make is not O(streams)
|
||||
self.assert_length(queries, 77)
|
||||
user_profile = self.nonreg_user('test')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
self.assertFalse(user_profile.enable_stream_desktop_notifications)
|
||||
|
||||
def test_register_deactivated(self) -> None:
|
||||
@@ -516,7 +515,7 @@ class LoginTest(ZulipTestCase):
|
||||
# We use the logout API, not self.logout, to make sure we test
|
||||
# the actual logout code path.
|
||||
self.client_post('/accounts/logout/')
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
def test_non_ascii_login(self) -> None:
|
||||
"""
|
||||
@@ -528,14 +527,14 @@ class LoginTest(ZulipTestCase):
|
||||
# Registering succeeds.
|
||||
self.register(email, password)
|
||||
user_profile = self.nonreg_user('test')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
self.logout()
|
||||
self.assertIsNone(get_session_dict_user(self.client.session))
|
||||
self.assert_logged_in_user_id(None)
|
||||
|
||||
# Logging in succeeds.
|
||||
self.logout()
|
||||
self.login(email, password)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
@override_settings(TWO_FACTOR_AUTHENTICATION_ENABLED=False)
|
||||
def test_login_page_redirects_logged_in_user(self) -> None:
|
||||
@@ -2109,7 +2108,7 @@ class UserSignUpTest(InviteUserBase):
|
||||
# User should now be logged in.
|
||||
self.assertEqual(result.status_code, 302)
|
||||
user_profile = self.nonreg_user('newuser')
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_signup_without_full_name(self) -> None:
|
||||
"""
|
||||
@@ -3102,7 +3101,7 @@ class UserSignUpTest(InviteUserBase):
|
||||
# Pass HTTP_HOST for the target subdomain
|
||||
HTTP_HOST=subdomain + ".testserver")
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
def test_registration_of_active_mirror_dummy_user(self) -> None:
|
||||
"""
|
||||
@@ -3131,7 +3130,7 @@ class UserSignUpTest(InviteUserBase):
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertEqual(user_profile.email, email)
|
||||
self.assertEqual(result['Location'], "http://zulip.testserver/")
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
@override_settings(TERMS_OF_SERVICE=False)
|
||||
def test_dev_user_registration_create_realm(self) -> None:
|
||||
@@ -3147,7 +3146,7 @@ class UserSignUpTest(InviteUserBase):
|
||||
self.assertEqual(result["Location"], 'http://{}.testserver'.format(string_id))
|
||||
|
||||
user_profile = UserProfile.objects.all().order_by("id").last()
|
||||
self.assertEqual(get_session_dict_user(self.client.session), user_profile.id)
|
||||
self.assert_logged_in_user_id(user_profile.id)
|
||||
|
||||
class DeactivateUserTest(ZulipTestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user