def test_patch_account(self, field, value, fails_validation_value=None, developer_validation_message=None):
        """
        Test the behavior of patch, when using the correct content_type.
        """
        client = self.login_client("client", "user")

        if field == 'account_privacy':
            # Ensure the user has birth year set, and is over 13, so
            # account_privacy behaves normally
            legacy_profile = UserProfile.objects.get(id=self.user.id)
            legacy_profile.year_of_birth = 2000
            legacy_profile.save()

        response = self.send_patch(client, {field: value})
        assert value == response.data[field]

        if fails_validation_value:
            error_response = self.send_patch(client, {field: fails_validation_value}, expected_status=400)
            expected_user_message = 'This value is invalid.'
            if field == 'bio':
                expected_user_message = "The about me field must be at most 300 characters long."

            assert expected_user_message == error_response.data['field_errors'][field]['user_message']

            assert "Value '{value}' is not valid for field '{field}': {messages}".format(
                value=fails_validation_value,
                field=field,
                messages=[developer_validation_message]
            ) == error_response.data['field_errors'][field]['developer_message']

        elif field != "account_privacy":
            # If there are no values that would fail validation, then empty string should be supported;
            # except for account_privacy, which cannot be an empty string.
            response = self.send_patch(client, {field: ""})
            assert '' == response.data[field]