def setUp(self): """ Populate the DB with data required for these tests to work. """ super(UserAccountTest, self).setUp() self.user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe') db_session.add(self.user) db_session.flush() self.office1 = Office( departement='57', siret='00000000000001', company_name='1', headcount='5', city_code='57070', zipcode='57070', naf='4646Z', score=90, x=6.166667, y=49.133333, ) self.office2 = Office( departement='57', siret='00000000000002', company_name='1', headcount='5', city_code='57070', zipcode='57070', naf='4646Z', score=90, x=6.166667, y=49.133333, ) db_session.add_all([self.office1, self.office2]) db_session.flush() self.user_social_auth = UserSocialAuth( provider=PEAMOpenIdConnect.name, extra_data={'id_token': 'fake'}, user_id=self.user.id, ) self.fav1 = UserFavoriteOffice(user_id=self.user.id, office_siret=self.office1.siret) self.fav2 = UserFavoriteOffice(user_id=self.user.id, office_siret=self.office2.siret) db_session.add_all([self.user_social_auth, self.fav1, self.fav2]) db_session.flush() db_session.commit() self.assertEqual(db_session.query(User).count(), 1) self.assertEqual(db_session.query(Office).count(), 2) self.assertEqual(db_session.query(UserFavoriteOffice).count(), 2) self.assertEqual(db_session.query(UserSocialAuth).count(), 1)
def test_office_admin_add(self): form = { "siret": "78548035101646", "company_name": "SUPERMARCHES MATCH", "office_name": "SUPERMARCHES MATCH", "naf": "4711D", "street_number": "45", "street_name": "AVENUE ANDRE MALRAUX", "city_code": "57463", "zipcode": "57000", "email": "*****@*****.**", "tel": "0387787878", "website": "http://www.supermarchesmatch.fr", "flag_alternance": 0, "flag_junior": 0, "flag_senior": 0, "flag_handicap": 0, "departement": "57", "headcount": "12", "score": 90, "score_alternance": 75, "x": 6.17952, "y": 49.1044, "reason": "Demande de mise en avant", } with self.test_request_context(): # Create an user admin self.user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe', active=True, is_admin=True) db_session.add(self.user) db_session.flush() user_social_auth = UserSocialAuth( provider=PEAMOpenIdConnect.name, extra_data={'id_token': 'fake'}, user_id=self.user.id, ) db_session.add(user_social_auth) db_session.commit() # Login as user admin self.user = db_session.query(User).filter_by(id=self.user.id).first() self.assertEqual(db_session.query(User).count(), 1) self.login(self.user) # Create OfficeAdminRemove self.assertEqual(0, OfficeAdminAdd.query.filter_by(id=1).count()) self.app.post(url_for('officeadminadd.create_view'), data=form) self.assertEqual(1, OfficeAdminAdd.query.filter_by(id=1).count()) # Delete OfficeAdminAdd self.app.post(url_for('officeadminadd.delete_view'), data={'id': 1}) self.assertEqual(0, OfficeAdminRemove.query.filter_by(id=1).count())
def test_office_admin_remove(self): # Create officeAdminRemove form = { 'siret': '01234567891234', 'name': 'Test company', 'reason': 'N/A', 'initiative': 'office', } with self.test_request_context(): # Create an user admin self.user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe', active=True, is_admin=True) db_session.add(self.user) db_session.flush() user_social_auth = UserSocialAuth( provider=PEAMOpenIdConnect.name, extra_data={'id_token': 'fake'}, user_id=self.user.id, ) db_session.add(user_social_auth) db_session.commit() # Login as user admin self.user = db_session.query(User).filter_by( id=self.user.id).first() self.assertEqual(db_session.query(User).count(), 1) self.login(self.user) # Create OfficeAdminRemove self.assertEqual( 0, OfficeAdminRemove.query.filter_by( siret='01234567891234').count()) self.app.post(url_for('officeadminremove.create_view'), data=form) self.assertEqual( 1, OfficeAdminRemove.query.filter_by( siret='01234567891234').count()) # Delete OfficeAdminRemove self.app.post(url_for('officeadminremove.delete_view'), data={'id': 1}) self.assertEqual(0, OfficeAdminRemove.query.filter_by(id=1).count())
def test_get_user_social_auth(self): """ Test the `get_user_social_auth()` function. """ user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe') db_session.add(user) db_session.flush() expected_user_social_auth = UserSocialAuth(provider=PEAMOpenIdConnect.name, extra_data=None, user_id=user.id) db_session.add(expected_user_social_auth) db_session.flush() db_session.commit() self.assertEqual(db_session.query(User).count(), 1) self.assertEqual(db_session.query(UserSocialAuth).count(), 1) user_social_auth = get_user_social_auth(user.id) self.assertEqual(user_social_auth.id, expected_user_social_auth.id)
def test_logout(self): """ Test that the session is cleaned after a logout. """ user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe') db_session.add(user) db_session.flush() # This `UserSocialAuth` entry will be required later by the logout function. user_social_auth = UserSocialAuth( provider=PEAMOpenIdConnect.name, extra_data={'id_token': 'fake'}, user_id=user.id, ) db_session.add(user_social_auth) db_session.commit() with self.test_request_context: with self.app.session_transaction() as sess: sess[ 'this_should_not_be_deleted'] = 'foo' # This should not be deleted by a login or logout. self.login(user) with self.app.session_transaction() as sess: self.assertIn('this_should_not_be_deleted', sess) self.assertIn('user_id', sess) self.assertIn('social_auth_last_login_backend', sess) self.assertIn('peam-openidconnect_state', sess) self.logout() with self.app.session_transaction() as sess: self.assertIn('this_should_not_be_deleted', sess) self.assertNotIn('user_id', sess) self.assertNotIn('social_auth_last_login_backend', sess) self.assertNotIn('peam-openidconnect_state', sess)
def setUp(self, *args, **kwargs): super(AdminTest, self).setUp(*args, **kwargs) self.user = User(email='*****@*****.**', gender='male', first_name='John', last_name='Doe') db_session.add(self.user) db_session.flush() # Required for `self.logout` to work which looks for the `extra_data` attribute. user_social_auth = UserSocialAuth( provider=PEAMOpenIdConnect.name, extra_data={'id_token': 'fake'}, user_id=self.user.id, ) db_session.add(user_social_auth) db_session.commit() self.assertEqual(db_session.query(User).count(), 1)