No longer import nose

Since Python 2.7, unittest in the standard library has included mulitple
facilities for skipping tests by decorators as well as an exception.
Switch to that directly, rather than importing nose.

Change-Id: I4009033473ea24f0d0faed3670db844f40051f30
This commit is contained in:
Steve Kowalik 2017-11-07 12:05:27 +11:00
parent 13116fefd8
commit 5a06e3da3b
14 changed files with 47 additions and 80 deletions

View File

@ -103,8 +103,8 @@ swift_test_domain = ['', '', '', '', '', '']
swift_test_user_id = ['', '', '', '', '', ''] swift_test_user_id = ['', '', '', '', '', '']
swift_test_tenant_id = ['', '', '', '', '', ''] swift_test_tenant_id = ['', '', '', '', '', '']
skip, skip2, skip3, skip_service_tokens, skip_if_no_reseller_admin = \ skip, skip2, skip3, skip_if_not_v3, skip_service_tokens, \
False, False, False, False, False skip_if_no_reseller_admin = False, False, False, False, False, False
orig_collate = '' orig_collate = ''
insecure = False insecure = False

View File

@ -20,7 +20,6 @@ import uuid
from random import shuffle from random import shuffle
from keystoneclient.v3 import client from keystoneclient.v3 import client
from nose import SkipTest
from swiftclient import get_auth, http_connection from swiftclient import get_auth, http_connection
import test.functional as tf import test.functional as tf
@ -3223,7 +3222,7 @@ class TestRBAC(BaseTestAC):
def test_rbac(self): def test_rbac(self):
if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3, if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3,
tf.skip_if_no_reseller_admin)): tf.skip_if_no_reseller_admin)):
raise SkipTest raise unittest.SkipTest
scenario_rbac = RBAC_PUT + RBAC_DELETE + RBAC_GET +\ scenario_rbac = RBAC_PUT + RBAC_DELETE + RBAC_GET +\
RBAC_HEAD + RBAC_POST + RBAC_OPTIONS RBAC_HEAD + RBAC_POST + RBAC_OPTIONS
shuffle(scenario_rbac) shuffle(scenario_rbac)
@ -3232,7 +3231,7 @@ class TestRBAC(BaseTestAC):
def test_rbac_with_service_prefix(self): def test_rbac_with_service_prefix(self):
if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3, if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3,
tf.skip_service_tokens, tf.skip_if_no_reseller_admin)): tf.skip_service_tokens, tf.skip_if_no_reseller_admin)):
raise SkipTest raise unittest.SkipTest
scenario_rbac = RBAC_PUT_WITH_SERVICE_PREFIX +\ scenario_rbac = RBAC_PUT_WITH_SERVICE_PREFIX +\
RBAC_DELETE_WITH_SERVICE_PREFIX +\ RBAC_DELETE_WITH_SERVICE_PREFIX +\
RBAC_GET_WITH_SERVICE_PREFIX +\ RBAC_GET_WITH_SERVICE_PREFIX +\
@ -3271,7 +3270,7 @@ class TestRBACInfo(BaseTestAC):
def test_rbac_info(self): def test_rbac_info(self):
if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3, if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3,
tf.skip_if_no_reseller_admin)): tf.skip_if_no_reseller_admin)):
raise SkipTest raise unittest.SkipTest
self.info_url = self._get_info_url() self.info_url = self._get_info_url()
scenario_rbac_info = RBAC_INFO_GET + RBAC_INFO_HEAD + RBAC_INFO_OPTIONS scenario_rbac_info = RBAC_INFO_GET + RBAC_INFO_HEAD + RBAC_INFO_OPTIONS
shuffle(scenario_rbac_info) shuffle(scenario_rbac_info)
@ -3280,7 +3279,7 @@ class TestRBACInfo(BaseTestAC):
def test_rbac_info_with_service_prefix(self): def test_rbac_info_with_service_prefix(self):
if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3, if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3,
tf.skip_service_tokens, tf.skip_if_no_reseller_admin)): tf.skip_service_tokens, tf.skip_if_no_reseller_admin)):
raise SkipTest raise unittest.SkipTest
self.info_url = self._get_info_url() self.info_url = self._get_info_url()
scenario_rbac_info = RBAC_INFO_GET_WITH_SERVICE_PREFIX +\ scenario_rbac_info = RBAC_INFO_GET_WITH_SERVICE_PREFIX +\
RBAC_INFO_HEAD_WITH_SERVICE_PREFIX +\ RBAC_INFO_HEAD_WITH_SERVICE_PREFIX +\
@ -3302,7 +3301,7 @@ class TestContainerACL(BaseTestAC):
def test_container_acl(self): def test_container_acl(self):
if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3, if any((tf.skip, tf.skip2, tf.skip3, tf.skip_if_not_v3,
tf.skip_if_no_reseller_admin)): tf.skip_if_no_reseller_admin)):
raise SkipTest raise unittest.SkipTest
self.id_info = KeystoneClient().get_id_info() self.id_info = KeystoneClient().get_id_info()
scenario_container_acl = ACL_PUT + ACL_DELETE + ACL_GET +\ scenario_container_acl = ACL_PUT + ACL_DELETE + ACL_GET +\
ACL_HEAD + ACL_POST + ACL_OPTIONS ACL_HEAD + ACL_POST + ACL_OPTIONS

View File

@ -24,7 +24,6 @@ from collections import defaultdict
import unittest import unittest
from hashlib import md5 from hashlib import md5
from uuid import uuid4 from uuid import uuid4
from nose import SkipTest
from six.moves.http_client import HTTPConnection from six.moves.http_client import HTTPConnection
import shutil import shutil
@ -204,12 +203,12 @@ def get_ring(ring_name, required_replicas, required_devices,
return ring return ring
# easy sanity checks # easy sanity checks
if ring.replica_count != required_replicas: if ring.replica_count != required_replicas:
raise SkipTest('%s has %s replicas instead of %s' % ( raise unittest.SkipTest('%s has %s replicas instead of %s' % (
ring.serialized_path, ring.replica_count, required_replicas)) ring.serialized_path, ring.replica_count, required_replicas))
devs = [dev for dev in ring.devs if dev is not None] devs = [dev for dev in ring.devs if dev is not None]
if len(devs) != required_devices: if len(devs) != required_devices:
raise SkipTest('%s has %s devices instead of %s' % ( raise unittest.SkipTest('%s has %s devices instead of %s' % (
ring.serialized_path, len(devs), required_devices)) ring.serialized_path, len(devs), required_devices))
for dev in devs: for dev in devs:
# verify server is exposing mounted device # verify server is exposing mounted device
@ -221,12 +220,12 @@ def get_ring(ring_name, required_replicas, required_devices,
dev_path = os.path.join(conf['devices'], device) dev_path = os.path.join(conf['devices'], device)
full_path = os.path.realpath(dev_path) full_path = os.path.realpath(dev_path)
if not os.path.exists(full_path): if not os.path.exists(full_path):
raise SkipTest( raise unittest.SkipTest(
'device %s in %s was not found (%s)' % 'device %s in %s was not found (%s)' %
(device, conf['devices'], full_path)) (device, conf['devices'], full_path))
break break
else: else:
raise SkipTest( raise unittest.SkipTest(
"unable to find ring device %s under %s's devices (%s)" % ( "unable to find ring device %s under %s's devices (%s)" % (
dev['device'], server, conf['devices'])) dev['device'], server, conf['devices']))
# verify server is exposing rsync device # verify server is exposing rsync device
@ -237,15 +236,15 @@ def get_ring(ring_name, required_replicas, required_devices,
p = Popen(cmd, shell=True, stdout=PIPE) p = Popen(cmd, shell=True, stdout=PIPE)
stdout, _stderr = p.communicate() stdout, _stderr = p.communicate()
if p.returncode: if p.returncode:
raise SkipTest('unable to connect to rsync ' raise unittest.SkipTest('unable to connect to rsync '
'export %s (%s)' % (rsync_export, cmd)) 'export %s (%s)' % (rsync_export, cmd))
for line in stdout.splitlines(): for line in stdout.splitlines():
if line.rsplit(None, 1)[-1] == dev['device']: if line.rsplit(None, 1)[-1] == dev['device']:
break break
else: else:
raise SkipTest("unable to find ring device %s under rsync's " raise unittest.SkipTest("unable to find ring device %s under "
"exported devices for %s (%s)" % "rsync's exported devices for %s (%s)" %
(dev['device'], rsync_export, cmd)) (dev['device'], rsync_export, cmd))
return ring return ring
@ -264,7 +263,7 @@ def get_policy(**kwargs):
matches = False matches = False
if matches: if matches:
return policy return policy
raise SkipTest('No policy matching %s' % kwargs) raise unittest.SkipTest('No policy matching %s' % kwargs)
def resetswift(): def resetswift():
@ -501,13 +500,13 @@ if __name__ == "__main__":
try: try:
get_ring(server, 3, 4, get_ring(server, 3, 4,
force_validate=True) force_validate=True)
except SkipTest as err: except unittest.SkipTest as err:
sys.exit('%s ERROR: %s' % (server, err)) sys.exit('%s ERROR: %s' % (server, err))
print('%s OK' % server) print('%s OK' % server)
for policy in POLICIES: for policy in POLICIES:
try: try:
get_ring(policy.ring_name, 3, 4, get_ring(policy.ring_name, 3, 4,
server='object', force_validate=True) server='object', force_validate=True)
except SkipTest as err: except unittest.SkipTest as err:
sys.exit('object ERROR (%s): %s' % (policy.name, err)) sys.exit('object ERROR (%s): %s' % (policy.name, err))
print('object OK (%s)' % policy.name) print('object OK (%s)' % policy.name)

View File

@ -18,8 +18,6 @@ import uuid
import random import random
import unittest import unittest
from nose import SkipTest
from six.moves.urllib.parse import urlparse from six.moves.urllib.parse import urlparse
from swift.common.manager import Manager from swift.common.manager import Manager
from swift.common.internal_client import InternalClient from swift.common.internal_client import InternalClient
@ -37,9 +35,8 @@ TIMEOUT = 60
class TestContainerMergePolicyIndex(ReplProbeTest): class TestContainerMergePolicyIndex(ReplProbeTest):
@unittest.skipIf(len(ENABLED_POLICIES) < 2, "Need more than one policy")
def setUp(self): def setUp(self):
if len(ENABLED_POLICIES) < 2:
raise SkipTest('Need more than one policy')
super(TestContainerMergePolicyIndex, self).setUp() super(TestContainerMergePolicyIndex, self).setUp()
self.container_name = 'container-%s' % uuid.uuid4() self.container_name = 'container-%s' % uuid.uuid4()
self.object_name = 'object-%s' % uuid.uuid4() self.object_name = 'object-%s' % uuid.uuid4()
@ -247,10 +244,10 @@ class TestContainerMergePolicyIndex(ReplProbeTest):
urlparse(self.url).netloc) urlparse(self.url).netloc)
proxy_conn = client.http_connection(info_url) proxy_conn = client.http_connection(info_url)
cluster_info = client.get_capabilities(proxy_conn) cluster_info = client.get_capabilities(proxy_conn)
if 'slo' not in cluster_info:
raise SkipTest("SLO not enabled in proxy; "
"can't test manifest reconciliation")
if 'slo' not in cluster_info:
raise unittest.SkipTest(
"SLO not enabled in proxy; can't test manifest reconciliation")
# this test is not only testing a split brain scenario on # this test is not only testing a split brain scenario on
# multiple policies with mis-placed objects - it even writes out # multiple policies with mis-placed objects - it even writes out
# a static large object directly to the storage nodes while the # a static large object directly to the storage nodes while the

View File

@ -14,7 +14,6 @@
import json import json
import uuid import uuid
import random import random
from nose import SkipTest
import unittest import unittest
from six.moves.urllib.parse import urlparse from six.moves.urllib.parse import urlparse
@ -33,16 +32,16 @@ def get_current_realm_cluster(url):
try: try:
info = client.get_capabilities(http_conn) info = client.get_capabilities(http_conn)
except client.ClientException: except client.ClientException:
raise SkipTest('Unable to retrieve cluster info') raise unittest.SkipTest('Unable to retrieve cluster info')
try: try:
realms = info['container_sync']['realms'] realms = info['container_sync']['realms']
except KeyError: except KeyError:
raise SkipTest('Unable to find container sync realms') raise unittest.SkipTest('Unable to find container sync realms')
for realm, realm_info in realms.items(): for realm, realm_info in realms.items():
for cluster, options in realm_info['clusters'].items(): for cluster, options in realm_info['clusters'].items():
if options.get('current', False): if options.get('current', False):
return realm, cluster return realm, cluster
raise SkipTest('Unable find current realm cluster') raise unittest.SkipTest('Unable find current realm cluster')
class TestContainerSync(ReplProbeTest): class TestContainerSync(ReplProbeTest):

View File

@ -15,11 +15,9 @@
# limitations under the License. # limitations under the License.
from io import StringIO from io import StringIO
from unittest import main from unittest import main, SkipTest
from uuid import uuid4 from uuid import uuid4
from nose import SkipTest
from swiftclient import client from swiftclient import client
from swiftclient.exceptions import ClientException from swiftclient.exceptions import ClientException
@ -65,7 +63,7 @@ class TestObjectAsyncUpdate(ReplProbeTest):
# In this test, we need to put container at handoff devices, so we # In this test, we need to put container at handoff devices, so we
# need container devices more than replica count # need container devices more than replica count
if len(self.container_ring.devs) <= self.container_ring.replica_count: if len(self.container_ring.devs) <= self.container_ring.replica_count:
raise SkipTest('Need devices more that replica count') raise SkipTest("Need devices more that replica count")
container = 'container-%s' % uuid4() container = 'container-%s' % uuid4()
cpart, cnodes = self.container_ring.get_nodes(self.account, container) cpart, cnodes = self.container_ring.get_nodes(self.account, container)

View File

@ -17,8 +17,6 @@ import time
import uuid import uuid
import unittest import unittest
from nose import SkipTest
from swift.common.internal_client import InternalClient, UnexpectedResponse from swift.common.internal_client import InternalClient, UnexpectedResponse
from swift.common.manager import Manager from swift.common.manager import Manager
from swift.common.utils import Timestamp from swift.common.utils import Timestamp
@ -36,7 +34,7 @@ class TestObjectExpirer(ReplProbeTest):
self.expirer.start() self.expirer.start()
err = self.expirer.stop() err = self.expirer.stop()
if err: if err:
raise SkipTest('Unable to verify object-expirer service') raise unittest.SkipTest('Unable to verify object-expirer service')
conf_files = [] conf_files = []
for server in self.expirer.servers: for server in self.expirer.servers:
@ -59,10 +57,8 @@ class TestObjectExpirer(ReplProbeTest):
return False return False
@unittest.skipIf(len(ENABLED_POLICIES) < 2, "Need more than one policy")
def test_expirer_object_split_brain(self): def test_expirer_object_split_brain(self):
if len(ENABLED_POLICIES) < 2:
raise SkipTest('Need more than one policy')
old_policy = random.choice(ENABLED_POLICIES) old_policy = random.choice(ENABLED_POLICIES)
wrong_policy = random.choice([p for p in ENABLED_POLICIES wrong_policy = random.choice([p for p in ENABLED_POLICIES
if p != old_policy]) if p != old_policy])

View File

@ -15,7 +15,6 @@
import unittest import unittest
import mock import mock
from nose import SkipTest
try: try:
# this test requires the dnspython package to be installed # this test requires the dnspython package to be installed
@ -50,9 +49,8 @@ def start_response(*args):
class TestCNAMELookup(unittest.TestCase): class TestCNAMELookup(unittest.TestCase):
@unittest.skipIf(skip, "can't import dnspython")
def setUp(self): def setUp(self):
if skip:
raise SkipTest
self.app = cname_lookup.CNAMELookupMiddleware(FakeApp(), self.app = cname_lookup.CNAMELookupMiddleware(FakeApp(),
{'lookup_depth': 2}) {'lookup_depth': 2})

View File

@ -18,7 +18,6 @@ import json
import shutil import shutil
import tempfile import tempfile
import unittest import unittest
from nose import SkipTest
from six import BytesIO from six import BytesIO
@ -49,9 +48,8 @@ class FakeApp(object):
class TestXProfile(unittest.TestCase): class TestXProfile(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def test_get_profiler(self): def test_get_profiler(self):
if xprofile is None:
raise SkipTest
self.assertTrue(xprofile.get_profiler('cProfile') is not None) self.assertTrue(xprofile.get_profiler('cProfile') is not None)
self.assertTrue(xprofile.get_profiler('eventlet.green.profile') self.assertTrue(xprofile.get_profiler('eventlet.green.profile')
is not None) is not None)
@ -59,9 +57,8 @@ class TestXProfile(unittest.TestCase):
class TestProfilers(unittest.TestCase): class TestProfilers(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def setUp(self): def setUp(self):
if xprofile is None:
raise SkipTest
self.profilers = [xprofile.get_profiler('cProfile'), self.profilers = [xprofile.get_profiler('cProfile'),
xprofile.get_profiler('eventlet.green.profile')] xprofile.get_profiler('eventlet.green.profile')]
@ -83,9 +80,8 @@ class TestProfilers(unittest.TestCase):
class TestProfileMiddleware(unittest.TestCase): class TestProfileMiddleware(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def setUp(self): def setUp(self):
if xprofile is None:
raise SkipTest
self.got_statuses = [] self.got_statuses = []
self.app = ProfileMiddleware(FakeApp, {}) self.app = ProfileMiddleware(FakeApp, {})
self.tempdir = os.path.dirname(self.app.log_filename_prefix) self.tempdir = os.path.dirname(self.app.log_filename_prefix)
@ -191,10 +187,8 @@ class TestProfileMiddleware(unittest.TestCase):
class Test_profile_log(unittest.TestCase): class Test_profile_log(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def setUp(self): def setUp(self):
if xprofile is None:
raise SkipTest
self.dir1 = tempfile.mkdtemp() self.dir1 = tempfile.mkdtemp()
self.log_filename_prefix1 = self.dir1 + '/unittest.profile' self.log_filename_prefix1 = self.dir1 + '/unittest.profile'
self.profile_log1 = ProfileLog(self.log_filename_prefix1, False) self.profile_log1 = ProfileLog(self.log_filename_prefix1, False)
@ -282,9 +276,8 @@ class Test_profile_log(unittest.TestCase):
class Test_html_viewer(unittest.TestCase): class Test_html_viewer(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def setUp(self): def setUp(self):
if xprofile is None:
raise SkipTest
self.app = ProfileMiddleware(FakeApp, {}) self.app = ProfileMiddleware(FakeApp, {})
self.log_files = [] self.log_files = []
self.tempdir = tempfile.mkdtemp() self.tempdir = tempfile.mkdtemp()
@ -473,9 +466,8 @@ class Test_html_viewer(unittest.TestCase):
class TestStats2(unittest.TestCase): class TestStats2(unittest.TestCase):
@unittest.skipIf(xprofile is None, "can't import xprofile")
def setUp(self): def setUp(self):
if xprofile is None:
raise SkipTest
self.profile_file = tempfile.mktemp('profile', 'unittest') self.profile_file = tempfile.mktemp('profile', 'unittest')
self.profilers = [xprofile.get_profiler('cProfile'), self.profilers = [xprofile.get_profiler('cProfile'),
xprofile.get_profiler('eventlet.green.profile')] xprofile.get_profiler('eventlet.green.profile')]

View File

@ -25,7 +25,6 @@ import contextlib
import re import re
import mock import mock
import nose
import six import six
from swift.common.splice import splice, tee from swift.common.splice import splice, tee
@ -73,7 +72,7 @@ class TestSplice(unittest.TestCase):
def setUp(self): def setUp(self):
if not splice.available: if not splice.available:
raise nose.SkipTest('splice not available') raise unittest.SkipTest('splice not available')
def test_flags(self): def test_flags(self):
'''Test flag attribute availability''' '''Test flag attribute availability'''
@ -228,7 +227,7 @@ class TestTee(unittest.TestCase):
def setUp(self): def setUp(self):
if not tee.available: if not tee.available:
raise nose.SkipTest('tee not available') raise unittest.SkipTest('tee not available')
@mock.patch('swift.common.splice.tee._c_tee', None) @mock.patch('swift.common.splice.tee._c_tee', None)
def test_available(self): def test_available(self):

View File

@ -57,7 +57,6 @@ from functools import partial
from tempfile import TemporaryFile, NamedTemporaryFile, mkdtemp from tempfile import TemporaryFile, NamedTemporaryFile, mkdtemp
from netifaces import AF_INET6 from netifaces import AF_INET6
from mock import MagicMock, patch from mock import MagicMock, patch
from nose import SkipTest
from six.moves.configparser import NoSectionError, NoOptionError from six.moves.configparser import NoSectionError, NoOptionError
from uuid import uuid4 from uuid import uuid4
@ -3697,7 +3696,7 @@ cluster_dfw1 = http://dfw1.host/v1/
try: try:
utils.NR_ioprio_set() utils.NR_ioprio_set()
except OSError as e: except OSError as e:
raise SkipTest(e) raise unittest.SkipTest(e)
with patch('swift.common.utils._libc_setpriority', with patch('swift.common.utils._libc_setpriority',
_fake_setpriority), \ _fake_setpriority), \

View File

@ -31,7 +31,6 @@ if six.PY2:
import mimetools import mimetools
import mock import mock
import nose
import swift.common.middleware.catch_errors import swift.common.middleware.catch_errors
import swift.common.middleware.gatekeeper import swift.common.middleware.gatekeeper
@ -75,10 +74,8 @@ class TestWSGI(unittest.TestCase):
if six.PY2: if six.PY2:
mimetools.Message.parsetype = self._orig_parsetype mimetools.Message.parsetype = self._orig_parsetype
@unittest.skipIf(six.PY3, "test specific to Python 2")
def test_monkey_patch_mimetools(self): def test_monkey_patch_mimetools(self):
if six.PY3:
raise nose.SkipTest('test specific to Python 2')
sio = StringIO('blah') sio = StringIO('blah')
self.assertEqual(mimetools.Message(sio).type, 'text/plain') self.assertEqual(mimetools.Message(sio).type, 'text/plain')
sio = StringIO('blah') sio = StringIO('blah')

View File

@ -46,7 +46,6 @@ from test.unit import (mock as unit_mock, temptree, mock_check_drive,
make_timestamp_iter, DEFAULT_TEST_EC_TYPE, make_timestamp_iter, DEFAULT_TEST_EC_TYPE,
requires_o_tmpfile_support, encode_frag_archive_bodies, requires_o_tmpfile_support, encode_frag_archive_bodies,
skip_if_no_xattrs) skip_if_no_xattrs)
from nose import SkipTest
from swift.obj import diskfile from swift.obj import diskfile
from swift.common import utils from swift.common import utils
from swift.common.utils import hash_path, mkdirs, Timestamp, \ from swift.common.utils import hash_path, mkdirs, Timestamp, \
@ -4746,8 +4745,7 @@ class DiskFileMixin(BaseDiskFileTestMixin):
def test_zero_copy_cache_dropping(self): def test_zero_copy_cache_dropping(self):
if not self._system_can_zero_copy(): if not self._system_can_zero_copy():
raise SkipTest("zero-copy support is missing") raise unittest.SkipTest("zero-copy support is missing")
self.conf['splice'] = 'on' self.conf['splice'] = 'on'
self.conf['keep_cache_size'] = 16384 self.conf['keep_cache_size'] = 16384
self.conf['disk_chunk_size'] = 4096 self.conf['disk_chunk_size'] = 4096
@ -4767,7 +4765,7 @@ class DiskFileMixin(BaseDiskFileTestMixin):
def test_zero_copy_turns_off_when_md5_sockets_not_supported(self): def test_zero_copy_turns_off_when_md5_sockets_not_supported(self):
if not self._system_can_zero_copy(): if not self._system_can_zero_copy():
raise SkipTest("zero-copy support is missing") raise unittest.SkipTest("zero-copy support is missing")
df_mgr = self.df_router[POLICIES.default] df_mgr = self.df_router[POLICIES.default]
self.conf['splice'] = 'on' self.conf['splice'] = 'on'
with mock.patch('swift.obj.diskfile.get_md5_socket') as mock_md5sock: with mock.patch('swift.obj.diskfile.get_md5_socket') as mock_md5sock:
@ -4782,8 +4780,7 @@ class DiskFileMixin(BaseDiskFileTestMixin):
def test_tee_to_md5_pipe_length_mismatch(self): def test_tee_to_md5_pipe_length_mismatch(self):
if not self._system_can_zero_copy(): if not self._system_can_zero_copy():
raise SkipTest("zero-copy support is missing") raise unittest.SkipTest("zero-copy support is missing")
self.conf['splice'] = 'on' self.conf['splice'] = 'on'
df = self._get_open_disk_file(fsize=16385) df = self._get_open_disk_file(fsize=16385)
@ -4805,8 +4802,7 @@ class DiskFileMixin(BaseDiskFileTestMixin):
def test_splice_to_wsockfd_blocks(self): def test_splice_to_wsockfd_blocks(self):
if not self._system_can_zero_copy(): if not self._system_can_zero_copy():
raise SkipTest("zero-copy support is missing") raise unittest.SkipTest("zero-copy support is missing")
self.conf['splice'] = 'on' self.conf['splice'] = 'on'
df = self._get_open_disk_file(fsize=16385) df = self._get_open_disk_file(fsize=16385)

View File

@ -39,8 +39,6 @@ from textwrap import dedent
from eventlet import sleep, spawn, wsgi, Timeout, tpool, greenthread from eventlet import sleep, spawn, wsgi, Timeout, tpool, greenthread
from eventlet.green import httplib from eventlet.green import httplib
from nose import SkipTest
from swift import __version__ as swift_version from swift import __version__ as swift_version
from swift.common.http import is_success from swift.common.http import is_success
from test import listen_zero from test import listen_zero
@ -6408,7 +6406,7 @@ class TestObjectController(unittest.TestCase):
except NotImplementedError: except NotImplementedError:
# On some operating systems (at a minimum, OS X) it's not possible # On some operating systems (at a minimum, OS X) it's not possible
# to introspect the value of a semaphore # to introspect the value of a semaphore
raise SkipTest raise unittest.SkipTest
else: else:
self.assertEqual(value, 4) self.assertEqual(value, 4)
@ -7636,7 +7634,7 @@ class TestZeroCopy(unittest.TestCase):
def setUp(self): def setUp(self):
skip_if_no_xattrs() skip_if_no_xattrs()
if not self._system_can_zero_copy(): if not self._system_can_zero_copy():
raise SkipTest("zero-copy support is missing") raise unittest.SkipTest("zero-copy support is missing")
self.testdir = mkdtemp(suffix="obj_server_zero_copy") self.testdir = mkdtemp(suffix="obj_server_zero_copy")
mkdirs(os.path.join(self.testdir, 'sda1', 'tmp')) mkdirs(os.path.join(self.testdir, 'sda1', 'tmp'))