def test_serializer_should_be_invalid_if_new_password_and_confirm_password_do_not_match(self):
        data = self.password_data.copy()
        data['confirm_password'] = '******'
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(["The two password fields didn't match."], serializer.errors['confirm_password'])
    def test_serializer_should_be_invalid_if_current_password_does_not_match(self):
        data = self.password_data.copy()
        data['old_password'] = '******'
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['Current password incorrect.'], serializer.errors['old_password'])
    def test_should_deserialize_user_object(self):
        serializer = UserPasswordChangeSerializer(self.user, data=self.password_data)

        self.assertTrue(serializer.is_valid())
        saved_user = serializer.save()

        self.assertTrue(isinstance(saved_user, User))
        self.assertTrue(saved_user.check_password(self.password_data['new_password']))
    def test_serializer_should_be_invalid_if_new_password_and_confirm_password_do_not_match(
            self):
        data = self.password_data.copy()
        data['confirm_password'] = '******'
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(["The two password fields didn't match."],
                         serializer.errors['confirm_password'])
    def test_serializer_should_be_invalid_if_current_password_does_not_match(
            self):
        data = self.password_data.copy()
        data['old_password'] = '******'
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['Current password incorrect.'],
                         serializer.errors['old_password'])
    def test_should_deserialize_user_object(self):
        serializer = UserPasswordChangeSerializer(self.user,
                                                  data=self.password_data)

        self.assertTrue(serializer.is_valid())
        saved_user = serializer.save()

        self.assertTrue(isinstance(saved_user, User))
        self.assertTrue(
            saved_user.check_password(self.password_data['new_password']))
    def test_confirm_password_is_required(self):
        data = self.password_data.copy()
        data['confirm_password'] = ''
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['This field is required.'], serializer.errors['confirm_password'])

        del data['confirm_password']
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['This field is required.'], serializer.errors['confirm_password'])
    def test_confirm_password_is_required(self):
        data = self.password_data.copy()
        data['confirm_password'] = ''
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['This field is required.'],
                         serializer.errors['confirm_password'])

        del data['confirm_password']
        serializer = UserPasswordChangeSerializer(self.user, data=data)

        self.assertFalse(serializer.is_valid())
        self.assertEqual(['This field is required.'],
                         serializer.errors['confirm_password'])
 def test_serialize_should_show_nothing(self):
     serializer = UserPasswordChangeSerializer(self.user,
                                               data=self.password_data)
     self.assertEqual({}, serializer.data)