diff --git a/test/functional/s3api/__init__.py b/test/functional/s3api/__init__.py index dbb32276fe..b770d8635b 100644 --- a/test/functional/s3api/__init__.py +++ b/test/functional/s3api/__init__.py @@ -24,6 +24,10 @@ import os import test.functional as tf from test.functional.s3api.s3_test_client import ( Connection, get_boto3_conn, tear_down_s3) +try: + import boto +except ImportError: + boto = None def setUpModule(): @@ -52,6 +56,8 @@ class S3ApiBase(unittest.TestCase): raise SkipTest('no s3api user configured') if 's3api' not in tf.cluster_info: raise SkipTest('s3api middleware is not enabled') + if boto is None: + raise SkipTest('boto 2.x library is not installed') if tf.config.get('account'): user_id = '%s:%s' % (tf.config['account'], tf.config['username']) else: diff --git a/test/functional/s3api/s3_test_client.py b/test/functional/s3api/s3_test_client.py index a963317dbb..9be79304bb 100644 --- a/test/functional/s3api/s3_test_client.py +++ b/test/functional/s3api/s3_test_client.py @@ -19,8 +19,14 @@ from six.moves.urllib.parse import urlparse import test.functional as tf import boto3 from botocore.exceptions import ClientError -from boto.s3.connection import S3Connection, OrdinaryCallingFormat, \ - S3ResponseError +try: + from boto.s3.connection import ( + S3Connection, + OrdinaryCallingFormat, + S3ResponseError, + ) +except ImportError: + S3Connection = OrdinaryCallingFormat = S3ResponseError = None import six import sys import traceback