def test_update_email_logs_change(self): self.user.email = '*****@*****.**' update(self.user, 'email', '*****@*****.**', user_change_logger=self.user_change_logger) self.assertIn('email', self.user_change_logger.fields_changed.keys())
def test_update_user_data_raises_exception_if_profile_conflict(self): profile_id = self._setup_profile() with self.assertRaises(UpdateConflictException): update(self.user, 'user_data', { PROFILE_SLUG: profile_id, 'conflicting_field': 'no' })
def test_update_password_logs_change(self): update(self.user, 'password', 'a7d8fhjkdf8d', user_change_logger=self.user_change_logger) self.assertIn(PASSWORD_FIELD, self.user_change_logger.change_messages.keys())
def test_update_phone_numbers_logs_changes(self): self.user.phone_numbers = ['50253311398'] update(self.user, 'phone_numbers', ['50253311399'], user_change_logger=self.user_change_logger) self.assertIn('phone_numbers', self.user_change_logger.change_messages.keys())
def test_update_language_does_not_log_no_change(self): self.user.language = 'un' update(self.user, 'language', 'un', user_change_logger=self.user_change_logger) self.assertNotIn('language', self.user_change_logger.fields_changed.keys())
def test_update_default_phone_number_does_not_log_no_change(self): self.user.set_default_phone_number('50253311399') update(self.user, 'default_phone_number', '50253311399', user_change_logger=self.user_change_logger) self.assertNotIn('phone_numbers', self.user_change_logger.change_messages.keys())
def test_update_password_with_strong_passwords_succeeds(self): self.domain_obj.strong_mobile_passwords = True self.domain_obj.save() try: update(self.user, 'password', 'a7d8fhjkdf8d') except ValidationError: self.fail('Unexpected ValidationError raised.')
def test_update_password_without_strong_passwords_succeeds(self): self.domain_obj.strong_mobile_passwords = False self.domain_obj.save() try: update(self.user, 'password', 'abc123') except ValidationError: self.fail('Unexpected ValidationError raised.')
def test_update_last_name_does_not_log_no_change(self): self.user.last_name = 'Unchanged' update(self.user, 'last_name', 'Unchanged', user_change_logger=self.user_change_logger) self.assertNotIn('last_name', self.user_change_logger.fields_changed.keys())
def test_update_language_logs_change(self): self.user.language = 'in' update(self.user, 'language', 'up', user_change_logger=self.user_change_logger) self.assertIn('language', self.user_change_logger.fields_changed.keys())
def test_update_last_name_logs_change(self): self.user.last_name = 'Initial' update(self.user, 'last_name', 'Updated', user_change_logger=self.user_change_logger) self.assertIn('last_name', self.user_change_logger.fields_changed.keys())
def test_update_email_with_no_change_does_not_log_change(self): self.user.email = '*****@*****.**' update(self.user, 'email', '*****@*****.**', user_change_logger=self.user_change_logger) self.assertNotIn('email', self.user_change_logger.fields_changed.keys())
def test_update_groups_logs_change(self): group = Group({"name": "test"}) group.save() self.addCleanup(group.delete) update(self.user, 'groups', [group._id], user_change_logger=self.user_change_logger) self.assertIn(GROUPS_FIELD, self.user_change_logger.change_messages.keys())
def test_update_first_name_logs_change(self): self.user.first_name = 'Initial' self.user.save() update(self.user, 'first_name', 'Updated', user_change_logger=self.user_change_logger) self.assertIn('first_name', self.user_change_logger.fields_changed.keys())
def test_update_user_data_logs_change(self): self.user.update_metadata({'custom_data': "initial custom data"}) update(self.user, 'user_data', {'custom_data': 'updated custom data'}, user_change_logger=self.user_change_logger) self.assertIn('user_data', self.user_change_logger.fields_changed.keys())
def test_update_password_with_strong_passwords_raises_exception(self): self.domain_obj.strong_mobile_passwords = True self.domain_obj.save() with self.assertRaises(ValidationError): update(self.user, 'password', 'abc123')
def test_update_user_data_does_not_log_no_change(self): self.user.update_metadata({'custom_data': "unchanged custom data"}) update(self.user, 'user_data', {'custom_data': 'unchanged custom data'}) self.assertNotIn('user_data', self.user_change_logger.fields_changed.keys())
def test_update_groups_succeeds(self): group = Group({"name": "test"}) group.save() self.addCleanup(group.delete) update(self.user, 'groups', [group._id]) self.assertEqual(self.user.get_group_ids()[0], group._id)
def test_update_language_succeeds(self): self.user.language = 'in' update(self.user, 'language', 'up') self.assertEqual(self.user.language, 'up')
def test_update_phone_numbers_updates_default(self): self.user.set_default_phone_number('50253311398') update(self.user, 'phone_numbers', ['50253311399', '50253311398']) self.assertEqual(self.user.default_phone_number, '50253311399')
def test_update_default_phone_number_preserves_previous_number(self): self.user.set_default_phone_number('50253311398') update(self.user, 'default_phone_number', '50253311399') self.assertIn('50253311398', self.user.phone_numbers)
def test_update_email_succeeds(self): self.user.email = '*****@*****.**' update(self.user, 'email', '*****@*****.**') self.assertEqual(self.user.email, '*****@*****.**')
def test_update_last_name_succeeds(self): self.user.last_name = 'Initial' update(self.user, 'last_name', 'Updated') self.assertEqual(self.user.last_name, 'Updated')
def test_update_user_data_succeeds(self): self.user.update_metadata({'custom_data': "initial custom data"}) update(self.user, 'user_data', {'custom_data': 'updated custom data'}) self.assertEqual(self.user.metadata["custom_data"], "updated custom data")
def test_update_default_phone_number_succeeds(self): self.user.set_default_phone_number('50253311398') update(self.user, 'default_phone_number', '50253311399') self.assertEqual(self.user.default_phone_number, '50253311399')
def test_update_unknown_field_raises_exception(self): with self.assertRaises(InvalidFieldException): update(self.user, 'username', 'new-username')
def test_update_default_phone_number_raises_exception_if_not_string(self): self.user.set_default_phone_number('50253311398') with self.assertRaises(InvalidFormatException): update(self.user, 'default_phone_number', 50253311399)
def test_update_phone_numbers_succeeds(self): self.user.phone_numbers = ['50253311398'] update(self.user, 'phone_numbers', ['50253311399', '50253311398']) self.assertEqual(self.user.phone_numbers, ['50253311399', '50253311398'])