Example #1
0
        def decorator(func):
            # TODO: This is not ideal, should change this to support
            # multiple versions
            required_version = required_versions[0]
            objectstorage_api_config = ObjectStorageComposite().config
            behaviors = ObjectStorageComposite().behaviors

            swift_version = objectstorage_api_config.version
            if not swift_version and objectstorage_api_config.use_swift_info:
                info = behaviors.get_swift_info()
                swift_version = info.get('swift', {
                    'version': None
                }).get('version', None)

            if not swift_version:
                return func

            if required_version.startswith('<'):
                required_version = required_version.lstrip('<')
                compare_func = lambda sv, tv: sv < tv
                extra_message = ' less than'
            elif required_version.startswith('>'):
                required_version = required_version.lstrip('>')
                compare_func = lambda sv, tv: sv > tv
                extra_message = ' greater than'
            else:
                required_version = required_version.lstrip('=')
                compare_func = lambda sv, tv: sv.startswith(tv)
                extra_message = ''

            if compare_func(swift_version, required_version):
                func

            setattr(func, '__unittest_skip__', True)
            setattr(
                func, '__unittest_skip_why__',
                'swift running version {0}, requires version{1}: {2}'.format(
                    swift_version, extra_message, required_version))
            return func
Example #2
0
        def decorator(func):
            # TODO: This is not ideal, should change this to support
            # multiple versions
            required_version = required_versions[0]
            objectstorage_api_config = ObjectStorageComposite().config
            behaviors = ObjectStorageComposite().behaviors

            swift_version = objectstorage_api_config.version
            if not swift_version and objectstorage_api_config.use_swift_info:
                info = behaviors.get_swift_info()
                swift_version = info.get(
                    'swift', {'version': None}).get('version', None)

            if not swift_version:
                return func

            if required_version.startswith('<'):
                required_version = required_version.lstrip('<')
                compare_func = lambda sv, tv: sv < tv
                extra_message = ' less than'
            elif required_version.startswith('>'):
                required_version = required_version.lstrip('>')
                compare_func = lambda sv, tv: sv > tv
                extra_message = ' greater than'
            else:
                required_version = required_version.lstrip('=')
                compare_func = lambda sv, tv: sv.startswith(tv)
                extra_message = ''

            if compare_func(swift_version, required_version):
                func

            setattr(func, '__unittest_skip__', True)
            setattr(
                func, '__unittest_skip_why__',
                'swift running version {0}, requires version{1}: {2}'.format(
                    swift_version, extra_message, required_version))
            return func