Helper method provided because we actually can't put that in the constructor, it creates a bug in Nose tests
        https://github.com/nose-devs/nose/issues/725

        :param source:
        :param converter:
        :param desired_type:
        :return:

def create_not_able_to_convert(source: S, converter: Converter, desired_type: Type[T]):
        """
        Helper method provided because we actually can't put that in the constructor, it creates a bug in Nose tests
        https://github.com/nose-devs/nose/issues/725

        :param source:
        :param converter:
        :param desired_type:
        :return:
        """
        base_msg = 'Converter ' + str(converter) + ' is not able to ingest source value \'' + str(source) + '\''\
                   ' of type \'' + get_pretty_type_str(type(source)) + '\' and/or convert it to type \'' \
                   + get_pretty_type_str(desired_type) + '\'.'
        base_msg += ' This can happen in a chain when the previous step in the chain is generic and actually produced '\
                    ' an output of the wrong type/content'

        return ConversionException(base_msg)