def test_password_change_clears_sessions(self): factories.SessionFactory(user=self.user) factories.SessionFactory(user=self.user) factories.SessionFactory(user=self.user) assert_equal(3, Session.find().count()) self.user.set_password('killerqueen') assert_equal(0, Session.find().count())
def test_get_cookie(self): user = AuthUserFactory() create_delta = Delta(lambda: Session.find().count(), lambda value: value + 1) with AssertDeltas(create_delta): utils.get_cookie_for_user(user) get_delta = Delta(lambda: Session.find().count()) with AssertDeltas(get_delta): utils.get_cookie_for_user(user)
def get_cookie_for_user(user): sessions = Session.find(Q('data.auth_user_id', 'eq', user._id)).sort('-date_modified') if sessions: session = sessions[0] else: session = Session( data={ 'auth_user_id': user._id, 'auth_user_username': user.username, 'auth_user_fullname': user.fullname, }) session.save() signer = itsdangerous.Signer(site_settings.SECRET_KEY) return signer.sign(session._id)
def test_serialize_revision(self): sessions.sessions[request._get_current_object()] = Session() utils.update_analytics(self.project, self.record._id, 0) utils.update_analytics(self.project, self.record._id, 0) utils.update_analytics(self.project, self.record._id, 2) expected = { 'index': 1, 'user': { 'name': self.user.fullname, 'url': self.user.url, }, 'date': self.versions[0].date_created.isoformat(), 'downloads': 2, 'md5': None, 'sha256': None, } observed = utils.serialize_revision( self.project, self.record, self.versions[0], 0, ) assert_equal(expected, observed) assert_equal(self.record.get_download_count(), 3) assert_equal(self.record.get_download_count(version=2), 1) assert_equal(self.record.get_download_count(version=0), 2)
def test_remove_session_for_user(self): factories.SessionFactory(user=self.user) # sanity check assert_equal(1, Session.find().count()) utils.remove_sessions_for_user(self.user) assert_equal(0, Session.find().count()) factories.SessionFactory() factories.SessionFactory(user=self.user) # sanity check assert_equal(2, Session.find().count()) utils.remove_sessions_for_user(self.user) assert_equal(1, Session.find().count())
def get_cookie_for_user(user): sessions = Session.find( Q('data.auth_user_id', 'eq', user._id) ).sort( '-date_modified' ) if sessions: session = sessions[0] else: session = Session(data={ 'auth_user_id': user._id, 'auth_user_username': user.username, 'auth_user_fullname': user.fullname, }) session.save() signer = itsdangerous.Signer(site_settings.SECRET_KEY) return signer.sign(session._id)
def get_kwargs(request, endpoint): kwargs = {} if 'session' in request.session: session = Session.from_session(request.session) kwargs['headers'] = { 'Authorization': session.token } return kwargs
def login(self): logger.debug('Attempting log in with token %s and code %s', self.request.session['login_token'], self.cleaned_data['code']) result = api.post( self.request, '/auth/second', { 'token': self.request.session['login_token'], 'code': self.cleaned_data['code'] }) del self.request.session['login_token'] session = Session.from_json(result['session']) session.to_session(self.request.session)
def setUp(self): super(TestClearSessions, self).setUp() now = datetime.datetime.utcnow() self.dates = [ now, now - relativedelta.relativedelta(months=2), now - relativedelta.relativedelta(months=4), ] self.sessions = [Session() for _ in range(len(self.dates))] for session in self.sessions: session.save() # Manually set `date_created` fields in MongoDB. for idx, date in enumerate(self.dates): self.session_collection.update( {'_id': self.sessions[idx]._id}, {'$set': {'date_modified': date}}, ) Session._clear_caches() assert_equal( Session.find().count(), 3, )
def setUp(self): super(TestClearSessions, self).setUp() now = datetime.datetime.utcnow() self.dates = [ now, now - relativedelta.relativedelta(months=2), now - relativedelta.relativedelta(months=4), ] self.sessions = [Session() for _ in range(len(self.dates))] for session in self.sessions: session.save() # Manually set `date_created` fields in MongoDB. for idx, date in enumerate(self.dates): self.session_collection.update( {'_id': self.sessions[idx]._id}, {'$set': { 'date_modified': date }}, ) Session._clear_caches() assert_equal( Session.find().count(), 3, )
def test_anon_revisions(self): sessions.sessions[request._get_current_object()] = Session() utils.update_analytics(self.project, self.record._id, 0) utils.update_analytics(self.project, self.record._id, 0) utils.update_analytics(self.project, self.record._id, 2) expected = { 'index': 2, 'user': None, 'date': self.versions[0].date_created.isoformat(), 'downloads': 0, } observed = utils.serialize_revision(self.project, self.record, self.versions[0], 1, anon=True) assert_equal(expected, observed)
def test_serialize_revision(self): sessions.sessions[request._get_current_object()] = Session() views.update_analytics(self.project, self.path, 1) views.update_analytics(self.project, self.path, 1) views.update_analytics(self.project, self.path, 3) expected = { 'index': 1, 'user': { 'name': self.user.fullname, 'url': self.user.url, }, 'date': self.versions[0].date_created.isoformat(), 'downloads': 2, } observed = utils.serialize_revision( self.project, self.record, self.versions[0], 1, ) assert_equal(expected, observed)
def test_serialize_revision(self): sessions.sessions[request._get_current_object()] = Session() views.update_analytics(self.project, self.path, 1) views.update_analytics(self.project, self.path, 1) views.update_analytics(self.project, self.path, 3) expected = { 'index': 1, 'user': { 'name': self.user.fullname, 'url': self.user.url, }, 'date': self.versions[0].date_created.isoformat(), 'downloads': 2, 'urls': { 'view': self.project.web_url_for( 'osf_storage_view_file', path=self.path, version=1, ), 'download': self.project.web_url_for( 'osf_storage_view_file', path=self.path, action='download', version=1, ), }, } observed = utils.serialize_revision( self.project, self.record, self.versions[0], 1, ) assert_equal(expected, observed)
def test_remove_session(self): session = SessionFactory(user=self.user) assert_equal(1, Session.find().count()) utils.remove_session(session) assert_equal(0, Session.find().count())
def test_clear_sessions_relative(self): clear_sessions_relative(3) assert_equal( Session.find().count(), 2, )
def test_clear_sessions(self): clear_sessions(self.dates[1]) assert_equal( Session.find().count(), 2, )
def tearDown(self): super(TestClearSessions, self).tearDown() Session.remove()
def tearDown(self, *args, **kwargs): super(SessionUtilsTestCase, self).tearDown(*args, **kwargs) User.remove() Session.remove()