def test_upload_avatar_administrator(self): print('- Test: upload user avatar in an administrator view') self.login(USERS[0], 'password') user = userApi.get_user(USERS[0], 'username') self.assertIsNone(userApi.has_user_resume_created(user)) data = { 'user': user.id, 'uploaded': SimpleUploadedFile('avatar.jpg', open(self.testing_image, 'rb').read(), content_type='image/jpeg'), } response = self.client.post(reverse('users:upload_avatar') + ADMINISTRATOR_NEXT, data=data, format='multipart') messages = self.messages(response) self.assertTrue('Success' in messages[0]) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('users:upload_avatar') + ADMINISTRATOR_NEXT) self.assertRedirects(response, response.url) avatar = userApi.has_user_avatar_created( userApi.get_user(USERS[0], 'username')) self.assertIsNotNone(avatar) userApi.delete_user_avatar(USERS[0])
def show_user(request, username): ''' Display an user's details ''' request = userApi.has_auth_user_access(request) adminApi.can_req_parameters_access(request, 'user-tab', ['next', 'p', 't']) next = adminApi.get_next(request) urlparse_next = urlparse(next) page = request.GET.get('p') tab = request.GET.get('t') user = userApi.get_user(username, 'username') user = userApi.add_avatar(user) user.is_student = userApi.user_has_role(user , Role.STUDENT) if user.is_student: userApi.add_resume(user) if tab == 'confidential': user = userApi.add_confidentiality_given_list(user, ['sin','study_permit']) return render(request, 'users/show_user.html', { 'loggedin_user': request.user, 'selected_user': user, 'go_back': { 'url': adminApi.get_next(request), 'page': page }, 'tab_urls': { 'basic': adminApi.build_url(request.path, next, page, 'basic'), 'additional': adminApi.build_url(request.path, next, page, 'additional') if user.is_student else None, 'confidential': adminApi.build_url(request.path, next, page, 'confidential') if user.is_student else None, 'resume': adminApi.build_url(request.path, next, page, 'resume') if user.is_student else None }, 'role': resolve(urlparse_next.path).app_name, 'current_tab': tab })
def test_edit_user_missing_values6(self): print( '- Test to edit the information of an user with missing values - employee number' ) self.login() user = userApi.get_user(USER, 'username') user_first_role = user.profile.roles.all()[0] self.assertEqual(user_first_role.name, Role.INSTRUCTOR) data6 = { 'user': user.id, 'first_name': 'first name', 'last_name': 'last name', 'email': '*****@*****.**', 'employee_number': '555' } response = self.client.post(reverse('instructors:edit_user'), data=urlencode(data6, True), content_type=ContentType) messages = self.messages(response) self.assertTrue( messages[0], 'An error occurred while updating an User Form. EMPLOYEE NUMBER: Ensure this value has at least 7 characters (it has 3).' ) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('instructors:edit_user')) self.assertRedirects(response, response.url)
def test_edit_user_missing_values4(self): print( '- Test to edit the information of an user with missing values - valid email address' ) self.login() user = userApi.get_user(USER, 'username') user_first_role = user.profile.roles.all()[0] self.assertEqual(user_first_role.name, Role.INSTRUCTOR) data4 = { 'user': user.id, 'first_name': 'first name', 'last_name': 'last name', 'email': 'new_email', 'employee_number': '5554444' } response = self.client.post(reverse('instructors:edit_user'), data=urlencode(data4, True), content_type=ContentType) messages = self.messages(response) self.assertTrue( messages[0], 'An error occurred while updating an User Form. EMAIL: Enter a valid email address.' ) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('instructors:edit_user')) self.assertRedirects(response, response.url)
def setUpTestData(cls): print('\nSession testing has started ==>') cls.user = userApi.get_user(USERS[0], 'username') cls.testing_sin = os.path.join( settings.BASE_DIR, 'users', 'tests', 'files', 'karsten-wurth-9qvZSH_NOQs-unsplash.jpg') cls.testing_study_permit = os.path.join( settings.BASE_DIR, 'users', 'tests', 'files', 'lucas-davies-3aubsNmGuLE-unsplash.jpg')
def test_delete_avatar_student(self): print('- Test: delete user avatar in a student view') self.login(USERS[2], 'password') user = userApi.get_user(USERS[2], 'username') data = { 'user': user.id, 'uploaded': SimpleUploadedFile('avatar.jpg', open(self.testing_image, 'rb').read(), content_type='image/jpeg') } response = self.client.post(reverse('users:upload_avatar') + STUDENT_NEXT, data=data, format='multipart') messages = self.messages(response) self.assertTrue('Success' in messages[0]) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('users:upload_avatar') + STUDENT_NEXT) self.assertRedirects(response, response.url) avatar = userApi.has_user_avatar_created( userApi.get_user(USERS[2], 'username')) self.assertIsNotNone(avatar) response = self.client.post(reverse('users:delete_avatar') + STUDENT_NEXT, data=urlencode({'user': USERS[2]}), content_type=ContentType) messages = self.messages(response) self.assertTrue('Success' in messages[0]) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('users:upload_avatar') + STUDENT_NEXT) self.assertRedirects(response, response.url)
def test_student_jobs_details2(self): print('- Test: display jobs that a student has - user66.test') self.login() user = userApi.get_user('user66.test', 'username') response = self.client.get( reverse('administrators:student_jobs_details', args=[ user.username ]) + STUDENT_JOB ) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['loggedin_user'].username, USERS[0]) self.assertEqual(response.context['loggedin_user'].roles, ['Admin']) self.assertEqual(response.context['user'].username, user.username) offered_app_ids = [7, 8] self.assertEqual(len(response.context['offered_apps']), 2) c1 = 0 for app in response.context['offered_apps']: self.assertEqual(app.id, offered_app_ids[c1]) c1 += 1 accepted_app_ids = [7, 8] self.assertEqual(len(response.context['accepted_apps']), 2) c2 = 0 for app in response.context['accepted_apps']: self.assertEqual(app.id, accepted_app_ids[c2]) c2 += 1 self.assertEqual(response.context['tab_urls']['all'], '/administrators/students/user66.test/jobs/?next=/administrators/jobs/student/?page=2&p=Jobs by Student&t=all') self.assertEqual(response.context['tab_urls']['offered'], '/administrators/students/user66.test/jobs/?next=/administrators/jobs/student/?page=2&p=Jobs by Student&t=offered') self.assertEqual(response.context['tab_urls']['accepted'], '/administrators/students/user66.test/jobs/?next=/administrators/jobs/student/?page=2&p=Jobs by Student&t=accepted') self.assertEqual(response.context['current_tab'], 'all') self.assertEqual(response.context['app_status'], {'none': '0', 'applied': '0', 'selected': '1', 'offered': '2', 'accepted': '3', 'declined': '4', 'cancelled': '5'}) self.assertEqual(response.context['next'], '/administrators/jobs/student/?page=2') apps = response.context['apps'] num_offered = 0 num_accepted = 0 for app in apps: if app.offered is not None: num_offered += 1 if app.accepted is not None: num_accepted += 1 total_assigned_hours = response.context['total_assigned_hours'] self.assertEqual( total_assigned_hours['offered'], {'2019-W1': 45.0, '2019-W2': 30.0} ) self.assertEqual( total_assigned_hours['accepted'], {'2019-W1': 45.0, '2019-W2': 30.0} ) self.assertEqual(len(apps), 5) self.assertEqual(num_offered, 2) self.assertEqual(num_accepted, 2)
def submit_confiential_information_international_complete(self, username): ''' Submit confidential information ''' SIN = self.testing_sin STUDY_PERMIT = self.testing_study_permit user = userApi.get_user(username, 'username') data = {'user': user.id, 'nationality': '1'} response = self.client.post(reverse('students:check_confidentiality'), data=urlencode(data), content_type=ContentType) messages = self.messages(response) self.assertTrue('Please submit your information' in messages[0]) self.assertEqual(response.status_code, 302) self.assertRedirects(response, response.url) data = { 'user': user.id, 'nationality': data['nationality'], 'date_of_birth': '2000-01-01', 'employee_number': random_with_N_digits(7), 'sin': SimpleUploadedFile('sin.jpg', open(SIN, 'rb').read(), content_type='image/jpeg'), 'sin_expiry_date': '2030-01-01', 'study_permit': SimpleUploadedFile('study_permit.jpg', open(STUDY_PERMIT, 'rb').read(), content_type='image/jpeg'), 'study_permit_expiry_date': '2030-01-01' } response = self.client.post(reverse('students:submit_confidentiality'), data=data, format='multipart') messages = self.messages(response) self.assertTrue('Success' in messages[0]) self.assertEqual(response.status_code, 302) self.assertRedirects(response, response.url)
def test_edit_user(self): print('- Test to edit the information of an user') self.login() user = userApi.get_user(USER, 'username') user_first_role = user.profile.roles.all()[0] self.assertEqual(user_first_role.name, Role.INSTRUCTOR) data = { 'user': user.id, 'first_name': 'firstname', 'last_name': 'lastname', 'email': '*****@*****.**', 'employee_number': '5554444' } response = self.client.post(reverse('instructors:edit_user'), data=urlencode(data), content_type=ContentType) messages = self.messages(response) self.assertTrue('Success' in messages[0]) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('instructors:index')) self.assertRedirects(response, response.url) response = self.client.get(reverse('instructors:index')) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['loggedin_user'].username, USER) self.assertEqual(response.context['loggedin_user'].roles, ['Instructor']) self.assertEqual(response.context['loggedin_user'].first_name, data['first_name']) self.assertEqual(response.context['loggedin_user'].last_name, data['last_name']) self.assertEqual(response.context['loggedin_user'].email, data['email']) self.assertEqual( response.context['loggedin_user'].confidentiality.employee_number, data['employee_number'])
def authenticate(self, userID): try: return get_user(id=userID) except NotFoundException: return None
def setUpTestData(cls): cls.user = userApi.get_user(USERS[2], 'username') cls.testing_image = os.path.join( settings.BASE_DIR, 'users', 'tests', 'files', 'karsten-wurth-9qvZSH_NOQs-unsplash.jpg')
def setUpTestData(cls): cls.user = userApi.get_user(USER, 'username')
def setUpTestData(cls): print('\nCourse testing has started ==>') cls.user = userApi.get_user(USERS[0], 'username')