コード例 #1
0
    def test_existing_user_empty_fields_override(self):
        self.client.force_login(user=self.admin_user)
        with open(self.all_fields, 'rb') as upload_user_file:
            upload_file = SimpleUploadedFile(upload_user_file.name,
                                             upload_user_file.read())

        user = User.objects.get(username='******')
        # Remove any existing field
        UserProfileCustomField.objects.filter(user=user).delete()

        self.client.post(self.url, {
            'upload_file': upload_file,
            'only_update': False
        })

        user = User.objects.get(username='******')
        profile = UserProfile.objects.get(user=user)

        self.assertEqual(user.first_name, 'UpdatedName')
        self.assertEqual(user.last_name, 'UpdatedLastname')
        self.assertEqual(profile.phone_number, '555555555')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'country'), 'Portugal')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'agree_to_terms'),
            True)
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'age'),
                         99)
コード例 #2
0
    def test_empty_string_userprofile_creates_nonexistent_custom_fields(self):
        # If a user profile is submitted that contains empty string custom
        # fields that didn't exist previously, in that case those fields should
        # be created with the empty value

        user = User.objects.get(username='******')
        # remove user custom fields

        CustomField.objects.create(id='extra',
                                   type='str',
                                   required=True,
                                   label='Required')

        UserProfileCustomField.objects.filter(user=user).delete()
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'country'), None)
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'extra'),
                         None)
        self.client.force_login(self.admin_user)

        with open(self.activity_with_empty_userinfo, 'rb') as alf:
            response = self.client.post(self.url, {'activity_log_file': alf})

        # should be redirected to the success page
        self.assert_redirects_success(response)
        # "extra" field is required, so the CustomField is created anyway
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'extra'),
                         '')
        # Country field is not required, so is not created with an empty value
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'country'), None)
コード例 #3
0
    def test_empty_userprofile_doesnt_update_fields(self):

        user = User.objects.get(username='******')
        userprofile = UserProfile.objects.get(user=user)
        userprofile.phone_number = '123456789'
        userprofile.organisation = 'home'
        userprofile.save()

        self.client.force_login(self.admin_user)

        with open(self.basic_activity_log, 'rb') as activity_log_file:
            response = self.client.post(
                self.url, {'activity_log_file': activity_log_file})

        # should be redirected to the success page
        self.assert_redirects_success(response)

        userprofile = UserProfile.objects.get(user=user)
        self.assertEqual(userprofile.phone_number, '123456789')
        self.assertEqual(userprofile.organisation, 'home')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'country'), 'FI')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'agree_to_terms'),
            None)
コード例 #4
0
    def test_existing_user_nonempty_fields_only_update(self):
        self.client.force_login(user=self.admin_user)
        with open(self.all_fields, 'rb') as upload_user_file:
            upload_file = SimpleUploadedFile(upload_user_file.name,
                                             upload_user_file.read())

        user = User.objects.get(username='******')
        user.first_name = 'firstname'
        user.last_name = 'lastname'
        user.save()

        profile = UserProfile.objects.get(user=user)
        profile.phone_number = '000000000'
        profile.save()

        # Remove any existing custom field
        UserProfileCustomField.objects.filter(user=user).delete()

        UserProfileCustomField.objects.create(
            user=user,
            key_name=CustomField.objects.get(id='country'),
            value_str='Spain')
        UserProfileCustomField.objects.create(
            user=user,
            key_name=CustomField.objects.get(id='agree_to_terms'),
            value_bool=False)
        UserProfileCustomField.objects.create(
            user=user,
            key_name=CustomField.objects.get(id='age'),
            value_int=30)

        self.client.post(self.url, {
            'upload_file': upload_file,
            'only_update': True
        })

        user = User.objects.get(username='******')
        profile = UserProfile.objects.get(user=user)

        self.assertEqual(user.first_name, 'firstname')
        self.assertEqual(user.last_name, 'lastname')
        self.assertEqual(profile.phone_number, '000000000')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'country'), 'Spain')
        self.assertEqual(
            UserProfileCustomField.get_user_value(user, 'agree_to_terms'),
            False)
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'age'),
                         30)
コード例 #5
0
    def test_userprofile_updated(self):

        self.client.force_login(self.admin_user)

        with open(self.activity_with_userinfo, 'rb') as activity_log_file:
            response = self.client.post(self.url,
                                        {'activity_log_file':
                                         activity_log_file})

        # should be redirected to the success page
        self.assert_redirects_success(response)

        user = User.objects.get(username='******')
        userprofile = UserProfile.objects.get(user=user)
        self.assertEqual(userprofile.phone_number, '123456789')
        self.assertEqual(userprofile.organisation, 'home')
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'country'), 'ES')
        self.assertEqual(UserProfileCustomField.get_user_value(user, 'agree_to_terms'), True)
コード例 #6
0
    def test_custom_fields(self):
        self.client.force_login(user=self.admin_user)
        with open(self.custom_fields, 'rb') as upload_user_file:
            upload_file = SimpleUploadedFile(upload_user_file.name,
                                             upload_user_file.read())

        user_count_start = User.objects.all().count()

        self.client.post(self.url, {'upload_file': upload_file,
                                    'only_update': True})

        user_count_end = User.objects.all().count()
        self.assertEqual(user_count_start+2, user_count_end)

        # check the user data
        user100 = User.objects.get(username='******')
        self.assertEqual(user100.userprofile.phone_number, "+0123456789")
        self.assertEqual(UserProfileCustomField.get_user_value(
            user100, 'country'), "Sweden")
        self.assertEqual(UserProfileCustomField.get_user_value(
            user100, 'age'), 24)
        self.assertTrue(UserProfileCustomField.get_user_value(
            user100, 'agree_to_terms'))

        user101 = User.objects.get(username='******')
        self.assertEqual(user101.userprofile.phone_number, "+987654321")
        self.assertEqual(UserProfileCustomField.get_user_value(
            user101, 'country'), "Iceland")
        self.assertEqual(UserProfileCustomField.get_user_value(
            user101, 'age'), 30)
        self.assertFalse(UserProfileCustomField.get_user_value(
            user101, 'agree_to_terms'))