Пример #1
0
    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])
Пример #2
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
    })
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
 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')
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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'])
Пример #10
0
 def authenticate(self, userID):
     try:
         return get_user(id=userID)
     except NotFoundException:
         return None
Пример #11
0
 def authenticate(self, userID):
     try:
         return get_user(id=userID)
     except NotFoundException:
         return None
Пример #12
0
 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')
Пример #13
0
 def setUpTestData(cls):
     cls.user = userApi.get_user(USER, 'username')
Пример #14
0
 def setUpTestData(cls):
     print('\nCourse testing has started ==>')
     cls.user = userApi.get_user(USERS[0], 'username')