def test_usersession_revoke(self): """Test to revoke on UserSession instance""" crusoe = self.fixtures.crusoe yet_another_usersession = models.UserSession(user=crusoe, ipaddr='192.168.1.1', user_agent=u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=utcnow()) yet_another_usersession.revoke() result = models.UserSession.query.filter_by(buid=yet_another_usersession.buid).one_or_none() self.assertIsNotNone(result.revoked_at)
def test_UserSession_get(self): """Test for verifying UserSession's get method""" oakley = self.fixtures.oakley oakley_buid = buid() oakley_session = models.UserSession(user=oakley, ipaddr='192.168.1.2', buid=oakley_buid, user_agent=u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=utcnow()) result = oakley_session.get(buid=oakley_buid) self.assertIsInstance(result, models.UserSession) self.assertEqual(result.user_id, oakley.id)
def test_usersession_has_sudo(self): """Test to set sudo and test if UserSession instance has_sudo """ crusoe = self.fixtures.crusoe another_user_session = models.UserSession(user=crusoe, ipaddr='192.168.1.1', user_agent=u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=utcnow()) another_user_session.set_sudo() db.session.add(another_user_session) db.session.commit() self.assertTrue(another_user_session.has_sudo)
def test_UserSession_authenticate(self): """Test to verify authenticate method on UserSession""" chandler = models.User(username=u'chandler', fullname=u'Chandler Bing') chandler_buid = buid() chandler_session = models.UserSession(user=chandler, ipaddr='192.168.1.4', buid=chandler_buid, user_agent=u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=utcnow()) db.session.add(chandler) db.session.add(chandler_session) db.session.commit() result = models.UserSession.authenticate(chandler_buid) self.assertIsInstance(result, models.UserSession) self.assertEqual(result, chandler_session)
def test_usersession_active_sessions(self): "Test for verifying UserSession's active_sessions" piglet = self.fixtures.piglet piglet_session = models.UserSession( user=piglet, ipaddr='192.168.1.3', buid=buid(), user_agent= u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=datetime.utcnow()) self.assertIsInstance(piglet.active_sessions(), list) self.assertItemsEqual(piglet.active_sessions(), [piglet_session])
def test_authtoken_user(self): """ Test for checking AuthToken's user property """ crusoe = self.fixtures.crusoe client = self.fixtures.client user_session = models.UserSession(buid=buid(), user=crusoe) auth_token_with_user_session = models.AuthToken(user=crusoe, user_session=user_session) self.assertIsInstance(auth_token_with_user_session.user_session.user, models.User) self.assertEqual(auth_token_with_user_session.user_session.user, crusoe) auth_token_without_user_session = models.AuthToken(client=client, user=crusoe) self.assertIsInstance(auth_token_without_user_session._user, models.User) self.assertEqual(auth_token_without_user_session._user, crusoe)
def test_client_authtoken_for(self): """ Test for retrieving authtoken for this user and client (only confidential clients) """ # scenario 1: for a client that has confidential=True auth_client = self.fixtures.auth_client crusoe = self.fixtures.crusoe result = auth_client.authtoken_for(crusoe) client_token = models.AuthToken( auth_client=auth_client, user=crusoe, scope='id', validity=0 ) result = auth_client.authtoken_for(user=crusoe) self.assertEqual(client_token, result) self.assertIsInstance(result, models.AuthToken) assert result.user == crusoe # scenario 2: for a client that has confidential=False varys = models.User(username='******', fullname='Lord Varys') house_lannisters = models.AuthClient( title='House of Lannisters', confidential=False, user=varys, website='houseoflannisters.westeros', ) varys_session = models.UserSession( user=varys, ipaddr='192.168.1.99', user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36', accessed_at=utcnow(), ) lannisters_auth_token = models.AuthToken( auth_client=house_lannisters, user=varys, scope='throne', validity=0, user_session=varys_session, ) db.session.add_all( [varys, house_lannisters, lannisters_auth_token, varys_session] ) db.session.commit() result = house_lannisters.authtoken_for(varys, user_session=varys_session) self.assertIsInstance(result, models.AuthToken) assert "Lord Varys" == result.user.fullname
def test_usersession_ua(self): """Test to verify user_agent property of UserSession instance""" ua = u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36' another_user_session = models.UserSession(user_agent=ua) self.assertIsInstance(another_user_session.ua, dict)
def test_UserSession_init(self): """Test to verify the creation of UserSession instance""" result = models.UserSession() self.assertIsInstance(result, models.UserSession)