def test_set_and_get_basic(self) -> None: start_time = timezone_now() with mock.patch('zerver.lib.sessions.timezone_now', return_value=start_time): set_expirable_session_var(self.session, 'test_set_and_get_basic', 'some_value', expiry_seconds=10) value = get_expirable_session_var(self.session, 'test_set_and_get_basic') self.assertEqual(value, 'some_value') with mock.patch('zerver.lib.sessions.timezone_now', return_value=start_time + timedelta(seconds=11)): value = get_expirable_session_var(self.session, 'test_set_and_get_basic') self.assertEqual(value, None)
def test_set_and_get_with_delete(self) -> None: set_expirable_session_var( self.session, "test_set_and_get_with_delete", "some_value", expiry_seconds=10 ) value = get_expirable_session_var(self.session, "test_set_and_get_with_delete", delete=True) self.assertEqual(value, "some_value") self.assertEqual( get_expirable_session_var(self.session, "test_set_and_get_with_delete"), None )
def login_and_go_to_home(request: HttpRequest, user_profile: UserProfile) -> HttpResponse: mobile_flow_otp = get_expirable_session_var(request.session, 'registration_mobile_flow_otp', delete=True) desktop_flow_otp = get_expirable_session_var(request.session, 'registration_desktop_flow_otp', delete=True) if mobile_flow_otp is not None: return finish_mobile_flow(request, user_profile, mobile_flow_otp) elif desktop_flow_otp is not None: return finish_desktop_flow(request, user_profile, desktop_flow_otp) do_login(request, user_profile) return HttpResponseRedirect(user_profile.realm.uri + reverse('zerver.views.home.home'))
def login_and_go_to_home(request: HttpRequest, user_profile: UserProfile) -> HttpResponse: mobile_flow_otp = get_expirable_session_var(request.session, 'registration_mobile_flow_otp', delete=True) desktop_flow_otp = get_expirable_session_var(request.session, 'registration_desktop_flow_otp', delete=True) if mobile_flow_otp is not None: return finish_mobile_flow(request, user_profile, mobile_flow_otp) elif desktop_flow_otp is not None: return finish_desktop_flow(request, user_profile, desktop_flow_otp) do_login(request, user_profile) # Using 'mark_sanitized' to work around false positive where Pysa thinks # that 'user_profile' is user-controlled return HttpResponseRedirect(mark_sanitized(user_profile.realm.uri) + reverse('home'))
def test_get_var_is_not_expirable(self) -> None: self.session["test_get_var_is_not_expirable"] = 0 with mock.patch('zerver.lib.sessions.logging.warning') as mock_warn: value = get_expirable_session_var(self.session, 'test_get_var_is_not_expirable', default_value='default') self.assertEqual(value, 'default') mock_warn.assert_called_once()
def test_get_var_is_not_expirable(self) -> None: self.session["test_get_var_is_not_expirable"] = 0 with self.assertLogs(level="WARNING") as m: value = get_expirable_session_var(self.session, "test_get_var_is_not_expirable", default_value="default") self.assertEqual(value, "default") self.assertIn( "WARNING:root:get_expirable_session_var: error getting test_get_var_is_not_expirable", m.output[0], )
def test_get_var_not_set(self) -> None: value = get_expirable_session_var(self.session, 'test_get_var_not_set', default_value='default') self.assertEqual(value, 'default')
def test_get_var_is_not_expirable(self) -> None: self.session["test_get_var_is_not_expirable"] = 0 with self.assertLogs(level='WARNING') as m: value = get_expirable_session_var(self.session, 'test_get_var_is_not_expirable', default_value='default') self.assertEqual(value, 'default') self.assertIn('WARNING:root:get_expirable_session_var: error getting test_get_var_is_not_expirable', m.output[0])
def test_get_var_not_set(self) -> None: value = get_expirable_session_var(self.session, "test_get_var_not_set", default_value="default") self.assertEqual(value, "default")