summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Firshman <ben@firshman.co.uk>2016-09-15 12:38:09 +0100
committerBen Firshman <ben@firshman.co.uk>2016-10-03 11:58:08 +0100
commit7339d7704346005e270de6765f2d54187372d8c7 (patch)
treef6137d0b108682645f7430b8dc0bfba0eb20d0fa
parent8cb186b62392c16ff7bf4890a202220ef4203f8c (diff)
downloaddocker-py-7339d7704346005e270de6765f2d54187372d8c7.tar.gz
Move BaseTestCase to BaseIntegrationTest
Because two things called `BaseTestCase` is quite confusing. I haven't bothered refactoring the other `BaseTestCase` because that disappears anyway when we drop Python 2.6 support. Signed-off-by: Ben Firshman <ben@firshman.co.uk>
-rw-r--r--tests/helpers.py92
-rw-r--r--tests/integration/api_test.py27
-rw-r--r--tests/integration/base.py88
-rw-r--r--tests/integration/build_test.py4
-rw-r--r--tests/integration/conftest.py5
-rw-r--r--tests/integration/container_test.py43
-rw-r--r--tests/integration/errors_test.py9
-rw-r--r--tests/integration/exec_test.py6
-rw-r--r--tests/integration/image_test.py14
-rw-r--r--tests/integration/network_test.py4
-rw-r--r--tests/integration/regression_test.py6
-rw-r--r--tests/integration/service_test.py7
-rw-r--r--tests/integration/swarm_test.py7
-rw-r--r--tests/integration/volume_test.py3
14 files changed, 147 insertions, 168 deletions
diff --git a/tests/helpers.py b/tests/helpers.py
index 40baef9..c7b8634 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -1,15 +1,8 @@
import os
import os.path
-import shutil
import tarfile
import tempfile
-import unittest
-import docker
-import six
-
-BUSYBOX = 'busybox:buildroot-2014.02'
-EXEC_DRIVER = []
def make_tree(dirs, files):
@@ -43,88 +36,3 @@ def untar_file(tardata, filename):
result = f.read()
f.close()
return result
-
-
-def docker_client(**kwargs):
- return docker.Client(**docker_client_kwargs(**kwargs))
-
-
-def docker_client_kwargs(**kwargs):
- client_kwargs = docker.utils.kwargs_from_env(assert_hostname=False)
- client_kwargs.update(kwargs)
- return client_kwargs
-
-
-class BaseTestCase(unittest.TestCase):
- tmp_imgs = []
- tmp_containers = []
- tmp_folders = []
- tmp_volumes = []
-
- def setUp(self):
- if six.PY2:
- self.assertRegex = self.assertRegexpMatches
- self.assertCountEqual = self.assertItemsEqual
- self.client = docker_client(timeout=60)
- self.tmp_imgs = []
- self.tmp_containers = []
- self.tmp_folders = []
- self.tmp_volumes = []
- self.tmp_networks = []
-
- def tearDown(self):
- for img in self.tmp_imgs:
- try:
- self.client.remove_image(img)
- except docker.errors.APIError:
- pass
- for container in self.tmp_containers:
- try:
- self.client.stop(container, timeout=1)
- self.client.remove_container(container)
- except docker.errors.APIError:
- pass
- for network in self.tmp_networks:
- try:
- self.client.remove_network(network)
- except docker.errors.APIError:
- pass
- for folder in self.tmp_folders:
- shutil.rmtree(folder)
-
- for volume in self.tmp_volumes:
- try:
- self.client.remove_volume(volume)
- except docker.errors.APIError:
- pass
-
- self.client.close()
-
- def run_container(self, *args, **kwargs):
- container = self.client.create_container(*args, **kwargs)
- self.tmp_containers.append(container)
- self.client.start(container)
- exitcode = self.client.wait(container)
-
- if exitcode != 0:
- output = self.client.logs(container)
- raise Exception(
- "Container exited with code {}:\n{}"
- .format(exitcode, output))
-
- return container
-
- def create_and_start(self, image='busybox', command='top', **kwargs):
- container = self.client.create_container(
- image=image, command=command, **kwargs)
- self.tmp_containers.append(container)
- self.client.start(container)
- return container
-
- def execute(self, container, cmd, exit_code=0, **kwargs):
- exc = self.client.exec_create(container, cmd, **kwargs)
- output = self.client.exec_start(exc)
- actual_exit_code = self.client.exec_inspect(exc)['ExitCode']
- msg = "Expected `{}` to exit with code {} but returned {}:\n{}".format(
- " ".join(cmd), exit_code, actual_exit_code, output)
- assert actual_exit_code == exit_code, msg
diff --git a/tests/integration/api_test.py b/tests/integration/api_test.py
index 67ed068..f20d30b 100644
--- a/tests/integration/api_test.py
+++ b/tests/integration/api_test.py
@@ -6,11 +6,12 @@ import unittest
import warnings
import docker
+from docker.utils import kwargs_from_env
-from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-class InformationTest(helpers.BaseTestCase):
+class InformationTest(BaseIntegrationTest):
def test_version(self):
res = self.client.version()
self.assertIn('GoVersion', res)
@@ -24,19 +25,19 @@ class InformationTest(helpers.BaseTestCase):
self.assertIn('Debug', res)
def test_search(self):
- self.client = helpers.docker_client(timeout=10)
- res = self.client.search('busybox')
+ client = docker.from_env(timeout=10)
+ res = client.search('busybox')
self.assertTrue(len(res) >= 1)
base_img = [x for x in res if x['name'] == 'busybox']
self.assertEqual(len(base_img), 1)
self.assertIn('description', base_img[0])
-class LinkTest(helpers.BaseTestCase):
+class LinkTest(BaseIntegrationTest):
def test_remove_link(self):
# Create containers
container1 = self.client.create_container(
- helpers.BUSYBOX, 'cat', detach=True, stdin_open=True
+ BUSYBOX, 'cat', detach=True, stdin_open=True
)
container1_id = container1['Id']
self.tmp_containers.append(container1_id)
@@ -48,7 +49,7 @@ class LinkTest(helpers.BaseTestCase):
link_alias = 'mylink'
container2 = self.client.create_container(
- helpers.BUSYBOX, 'cat', host_config=self.client.create_host_config(
+ BUSYBOX, 'cat', host_config=self.client.create_host_config(
links={link_path: link_alias}
)
)
@@ -74,7 +75,7 @@ class LinkTest(helpers.BaseTestCase):
self.assertEqual(len(retrieved), 2)
-class LoadConfigTest(helpers.BaseTestCase):
+class LoadConfigTest(BaseIntegrationTest):
def test_load_legacy_config(self):
folder = tempfile.mkdtemp()
self.tmp_folders.append(folder)
@@ -113,7 +114,7 @@ class LoadConfigTest(helpers.BaseTestCase):
class AutoDetectVersionTest(unittest.TestCase):
def test_client_init(self):
- client = helpers.docker_client(version='auto')
+ client = docker.from_env(version='auto')
client_version = client._version
api_version = client.version(api_version=False)['ApiVersion']
self.assertEqual(client_version, api_version)
@@ -122,7 +123,7 @@ class AutoDetectVersionTest(unittest.TestCase):
client.close()
def test_auto_client(self):
- client = docker.AutoVersionClient(**helpers.docker_client_kwargs())
+ client = docker.AutoVersionClient(**kwargs_from_env())
client_version = client._version
api_version = client.version(api_version=False)['ApiVersion']
self.assertEqual(client_version, api_version)
@@ -130,9 +131,7 @@ class AutoDetectVersionTest(unittest.TestCase):
self.assertEqual(client_version, api_version_2)
client.close()
with self.assertRaises(docker.errors.DockerException):
- docker.AutoVersionClient(
- **helpers.docker_client_kwargs(version='1.11')
- )
+ docker.AutoVersionClient(version='1.11', **kwargs_from_env())
class ConnectionTimeoutTest(unittest.TestCase):
@@ -167,7 +166,7 @@ class UnixconnTest(unittest.TestCase):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')
- client = helpers.docker_client()
+ client = docker.from_env()
client.images()
client.close()
del client
diff --git a/tests/integration/base.py b/tests/integration/base.py
new file mode 100644
index 0000000..3fb25b5
--- /dev/null
+++ b/tests/integration/base.py
@@ -0,0 +1,88 @@
+import shutil
+import unittest
+
+import docker
+import six
+
+
+BUSYBOX = 'busybox:buildroot-2014.02'
+
+
+class BaseIntegrationTest(unittest.TestCase):
+ """
+ A base class for integration test cases.
+
+ It sets up a Docker client and cleans up the Docker server after itself.
+ """
+ tmp_imgs = []
+ tmp_containers = []
+ tmp_folders = []
+ tmp_volumes = []
+
+ def setUp(self):
+ if six.PY2:
+ self.assertRegex = self.assertRegexpMatches
+ self.assertCountEqual = self.assertItemsEqual
+ self.client = docker.from_env(timeout=60)
+ self.tmp_imgs = []
+ self.tmp_containers = []
+ self.tmp_folders = []
+ self.tmp_volumes = []
+ self.tmp_networks = []
+
+ def tearDown(self):
+ for img in self.tmp_imgs:
+ try:
+ self.client.remove_image(img)
+ except docker.errors.APIError:
+ pass
+ for container in self.tmp_containers:
+ try:
+ self.client.stop(container, timeout=1)
+ self.client.remove_container(container)
+ except docker.errors.APIError:
+ pass
+ for network in self.tmp_networks:
+ try:
+ self.client.remove_network(network)
+ except docker.errors.APIError:
+ pass
+ for folder in self.tmp_folders:
+ shutil.rmtree(folder)
+
+ for volume in self.tmp_volumes:
+ try:
+ self.client.remove_volume(volume)
+ except docker.errors.APIError:
+ pass
+
+ self.client.close()
+
+ def run_container(self, *args, **kwargs):
+ container = self.client.create_container(*args, **kwargs)
+ self.tmp_containers.append(container)
+ self.client.start(container)
+ exitcode = self.client.wait(container)
+
+ if exitcode != 0:
+ output = self.client.logs(container)
+ raise Exception(
+ "Container exited with code {}:\n{}"
+ .format(exitcode, output))
+
+ return container
+
+ def create_and_start(self, image='busybox', command='top', **kwargs):
+ container = self.client.create_container(
+ image=image, command=command, **kwargs)
+ self.tmp_containers.append(container)
+ self.client.start(container)
+ return container
+
+ def execute(self, container, cmd, exit_code=0, **kwargs):
+ exc = self.client.exec_create(container, cmd, **kwargs)
+ output = self.client.exec_start(exc)
+ actual_exit_code = self.client.exec_inspect(exc)['ExitCode']
+ msg = "Expected `{}` to exit with code {} but returned {}:\n{}".format(
+ " ".join(cmd), exit_code, actual_exit_code, output)
+ assert actual_exit_code == exit_code, msg
diff --git a/tests/integration/build_test.py b/tests/integration/build_test.py
index cc8a862..db5ad14 100644
--- a/tests/integration/build_test.py
+++ b/tests/integration/build_test.py
@@ -8,11 +8,11 @@ import six
from docker import errors
-from .. import helpers
from ..base import requires_api_version
+from .base import BaseIntegrationTest
-class BuildTest(helpers.BaseTestCase):
+class BuildTest(BaseIntegrationTest):
def test_build_streaming(self):
script = io.BytesIO('\n'.join([
'FROM busybox',
diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py
index b174195..b0be966 100644
--- a/tests/integration/conftest.py
+++ b/tests/integration/conftest.py
@@ -7,14 +7,13 @@ import warnings
import docker.errors
import pytest
-from ..helpers import BUSYBOX
-from ..helpers import docker_client
+from .base import BUSYBOX
@pytest.fixture(autouse=True, scope='session')
def setup_test_session():
warnings.simplefilter('error')
- c = docker_client()
+ c = docker.from_env()
try:
c.inspect_image(BUSYBOX)
except docker.errors.NotFound:
diff --git a/tests/integration/container_test.py b/tests/integration/container_test.py
index 4bb78bf..88ed0f8 100644
--- a/tests/integration/container_test.py
+++ b/tests/integration/container_test.py
@@ -10,11 +10,10 @@ import six
from ..base import requires_api_version
from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-BUSYBOX = helpers.BUSYBOX
-
-class ListContainersTest(helpers.BaseTestCase):
+class ListContainersTest(BaseIntegrationTest):
def test_list_containers(self):
res0 = self.client.containers(all=True)
size = len(res0)
@@ -34,7 +33,7 @@ class ListContainersTest(helpers.BaseTestCase):
self.assertIn('Status', retrieved)
-class CreateContainerTest(helpers.BaseTestCase):
+class CreateContainerTest(BaseIntegrationTest):
def test_create(self):
res = self.client.create_container(BUSYBOX, 'true')
@@ -398,7 +397,7 @@ class CreateContainerTest(helpers.BaseTestCase):
assert config['HostConfig']['Tmpfs'] == tmpfs
-class VolumeBindTest(helpers.BaseTestCase):
+class VolumeBindTest(BaseIntegrationTest):
def setUp(self):
super(VolumeBindTest, self).setUp()
@@ -487,7 +486,7 @@ class VolumeBindTest(helpers.BaseTestCase):
@requires_api_version('1.20')
-class ArchiveTest(helpers.BaseTestCase):
+class ArchiveTest(BaseIntegrationTest):
def test_get_file_archive_from_container(self):
data = 'The Maid and the Pocket Watch of Blood'
ctnr = self.client.create_container(
@@ -567,7 +566,7 @@ class ArchiveTest(helpers.BaseTestCase):
self.assertIn('bar/', results)
-class RenameContainerTest(helpers.BaseTestCase):
+class RenameContainerTest(BaseIntegrationTest):
def test_rename_container(self):
version = self.client.version()['Version']
name = 'hong_meiling'
@@ -583,7 +582,7 @@ class RenameContainerTest(helpers.BaseTestCase):
self.assertEqual('/{0}'.format(name), inspect['Name'])
-class StartContainerTest(helpers.BaseTestCase):
+class StartContainerTest(BaseIntegrationTest):
def test_start_container(self):
res = self.client.create_container(BUSYBOX, 'true')
self.assertIn('Id', res)
@@ -637,7 +636,7 @@ class StartContainerTest(helpers.BaseTestCase):
self.assertEqual(exitcode, 0, msg=cmd)
-class WaitTest(helpers.BaseTestCase):
+class WaitTest(BaseIntegrationTest):
def test_wait(self):
res = self.client.create_container(BUSYBOX, ['sleep', '3'])
id = res['Id']
@@ -665,7 +664,7 @@ class WaitTest(helpers.BaseTestCase):
self.assertEqual(inspect['State']['ExitCode'], exitcode)
-class LogsTest(helpers.BaseTestCase):
+class LogsTest(BaseIntegrationTest):
def test_logs(self):
snippet = 'Flowering Nights (Sakuya Iyazoi)'
container = self.client.create_container(
@@ -737,7 +736,7 @@ Line2'''
self.assertEqual(logs, ''.encode(encoding='ascii'))
-class DiffTest(helpers.BaseTestCase):
+class DiffTest(BaseIntegrationTest):
def test_diff(self):
container = self.client.create_container(BUSYBOX, ['touch', '/test'])
id = container['Id']
@@ -765,7 +764,7 @@ class DiffTest(helpers.BaseTestCase):
self.assertEqual(test_diff[0]['Kind'], 1)
-class StopTest(helpers.BaseTestCase):
+class StopTest(BaseIntegrationTest):
def test_stop(self):
container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
id = container['Id']
@@ -792,7 +791,7 @@ class StopTest(helpers.BaseTestCase):
self.assertEqual(state['Running'], False)
-class KillTest(helpers.BaseTestCase):
+class KillTest(BaseIntegrationTest):
def test_kill(self):
container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
id = container['Id']
@@ -868,7 +867,7 @@ class KillTest(helpers.BaseTestCase):
self.assertEqual(state['Running'], False, state)
-class PortTest(helpers.BaseTestCase):
+class PortTest(BaseIntegrationTest):
def test_port(self):
port_bindings = {
@@ -899,7 +898,7 @@ class PortTest(helpers.BaseTestCase):
self.client.kill(id)
-class ContainerTopTest(helpers.BaseTestCase):
+class ContainerTopTest(BaseIntegrationTest):
def test_top(self):
container = self.client.create_container(
BUSYBOX, ['sleep', '60'])
@@ -934,7 +933,7 @@ class ContainerTopTest(helpers.BaseTestCase):
self.client.kill(id)
-class RestartContainerTest(helpers.BaseTestCase):
+class RestartContainerTest(BaseIntegrationTest):
def test_restart(self):
container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
id = container['Id']
@@ -975,7 +974,7 @@ class RestartContainerTest(helpers.BaseTestCase):
self.client.kill(id)
-class RemoveContainerTest(helpers.BaseTestCase):
+class RemoveContainerTest(BaseIntegrationTest):
def test_remove(self):
container = self.client.create_container(BUSYBOX, ['true'])
id = container['Id']
@@ -997,7 +996,7 @@ class RemoveContainerTest(helpers.BaseTestCase):
self.assertEqual(len(res), 0)
-class AttachContainerTest(helpers.BaseTestCase):
+class AttachContainerTest(BaseIntegrationTest):
def test_run_container_streaming(self):
container = self.client.create_container(BUSYBOX, '/bin/sh',
detach=True, stdin_open=True)
@@ -1028,7 +1027,7 @@ class AttachContainerTest(helpers.BaseTestCase):
self.assertEqual(data.decode('utf-8'), line)
-class PauseTest(helpers.BaseTestCase):
+class PauseTest(BaseIntegrationTest):
def test_pause_unpause(self):
container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
id = container['Id']
@@ -1057,7 +1056,7 @@ class PauseTest(helpers.BaseTestCase):
self.assertEqual(state['Paused'], False)
-class GetContainerStatsTest(helpers.BaseTestCase):
+class GetContainerStatsTest(BaseIntegrationTest):
@requires_api_version('1.19')
def test_get_container_stats_no_stream(self):
container = self.client.create_container(
@@ -1088,7 +1087,7 @@ class GetContainerStatsTest(helpers.BaseTestCase):
self.assertIn(key, chunk)
-class ContainerUpdateTest(helpers.BaseTestCase):
+class ContainerUpdateTest(BaseIntegrationTest):
@requires_api_version('1.22')
def test_update_container(self):
old_mem_limit = 400 * 1024 * 1024
@@ -1135,7 +1134,7 @@ class ContainerUpdateTest(helpers.BaseTestCase):
)
-class ContainerCPUTest(helpers.BaseTestCase):
+class ContainerCPUTest(BaseIntegrationTest):
@requires_api_version('1.18')
def test_container_cpu_shares(self):
cpu_shares = 512
diff --git a/tests/integration/errors_test.py b/tests/integration/errors_test.py
index 42fbae4..4adfa32 100644
--- a/tests/integration/errors_test.py
+++ b/tests/integration/errors_test.py
@@ -1,13 +1,10 @@
from docker.errors import APIError
-from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-class ErrorsTest(helpers.BaseTestCase):
+class ErrorsTest(BaseIntegrationTest):
def test_api_error_parses_json(self):
- container = self.client.create_container(
- helpers.BUSYBOX,
- ['sleep', '10']
- )
+ container = self.client.create_container(BUSYBOX, ['sleep', '10'])
self.client.start(container['Id'])
with self.assertRaises(APIError) as cm:
self.client.remove_container(container['Id'])
diff --git a/tests/integration/exec_test.py b/tests/integration/exec_test.py
index f377e09..f2a8b1f 100644
--- a/tests/integration/exec_test.py
+++ b/tests/integration/exec_test.py
@@ -1,12 +1,10 @@
from docker.utils.socket import next_frame_size
from docker.utils.socket import read_exactly
-from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-BUSYBOX = helpers.BUSYBOX
-
-class ExecTest(helpers.BaseTestCase):
+class ExecTest(BaseIntegrationTest):
def test_execute_command(self):
container = self.client.create_container(BUSYBOX, 'cat',
detach=True, stdin_open=True)
diff --git a/tests/integration/image_test.py b/tests/integration/image_test.py
index a61b58a..84ddb4f 100644
--- a/tests/integration/image_test.py
+++ b/tests/integration/image_test.py
@@ -14,12 +14,10 @@ from six.moves import socketserver
import docker
-from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-BUSYBOX = helpers.BUSYBOX
-
-class ListImagesTest(helpers.BaseTestCase):
+class ListImagesTest(BaseIntegrationTest):
def test_images(self):
res1 = self.client.images(all=True)
self.assertIn('Id', res1[0])
@@ -37,7 +35,7 @@ class ListImagesTest(helpers.BaseTestCase):
self.assertEqual(type(res1[0]), six.text_type)
-class PullImageTest(helpers.BaseTestCase):
+class PullImageTest(BaseIntegrationTest):
def test_pull(self):
try:
self.client.remove_image('hello-world')
@@ -70,7 +68,7 @@ class PullImageTest(helpers.BaseTestCase):
self.assertIn('Id', img_info)
-class CommitTest(helpers.BaseTestCase):
+class CommitTest(BaseIntegrationTest):
def test_commit(self):
container = self.client.create_container(BUSYBOX, ['touch', '/test'])
id = container['Id']
@@ -105,7 +103,7 @@ class CommitTest(helpers.BaseTestCase):
assert img['Config']['Cmd'] == ['bash']
-class RemoveImageTest(helpers.BaseTestCase):
+class RemoveImageTest(BaseIntegrationTest):
def test_remove(self):
container = self.client.create_container(BUSYBOX, ['touch', '/test'])
id = container['Id']
@@ -121,7 +119,7 @@ class RemoveImageTest(helpers.BaseTestCase):
self.assertEqual(len(res), 0)
-class ImportImageTest(helpers.BaseTestCase):
+class ImportImageTest(BaseIntegrationTest):
'''Base class for `docker import` test cases.'''
TAR_SIZE = 512 * 1024
diff --git a/tests/integration/network_test.py b/tests/integration/network_test.py
index bacfd81..f0f44f0 100644
--- a/tests/integration/network_test.py
+++ b/tests/integration/network_test.py
@@ -5,11 +5,11 @@ from docker.utils import create_ipam_config
from docker.utils import create_ipam_pool
import pytest
-from .. import helpers
from ..base import requires_api_version
+from .base import BaseIntegrationTest
-class TestNetworks(helpers.BaseTestCase):
+class TestNetworks(BaseIntegrationTest):
def create_network(self, *args, **kwargs):
net_name = u'dockerpy{}'.format(random.getrandbits(24))[:14]
net_id = self.client.create_network(net_name, *args, **kwargs)['Id']
diff --git a/tests/integration/regression_test.py b/tests/integration/regression_test.py
index 8b321cf..0672c4f 100644
--- a/tests/integration/regression_test.py
+++ b/tests/integration/regression_test.py
@@ -4,12 +4,10 @@ import random
import docker
import six
-from .. import helpers
+from .base import BaseIntegrationTest, BUSYBOX
-BUSYBOX = helpers.BUSYBOX
-
-class TestRegressions(helpers.BaseTestCase):
+class TestRegressions(BaseIntegrationTest):
def test_443_handle_nonchunked_response_in_stream(self):
dfile = io.BytesIO()
with self.assertRaises(docker.errors.APIError) as exc:
diff --git a/tests/integration/service_test.py b/tests/integration/service_test.py
index 3543894..2c80035 100644
--- a/tests/integration/service_test.py
+++ b/tests/integration/service_test.py
@@ -3,13 +3,10 @@ import random
import docker
from ..base import requires_api_version
-from .. import helpers
+from .base import BaseIntegrationTest
-BUSYBOX = helpers.BUSYBOX
-
-
-class ServiceTest(helpers.BaseTestCase):
+class ServiceTest(BaseIntegrationTest):
def setUp(self):
super(ServiceTest, self).setUp()
self.client.leave_swarm(force=True)
diff --git a/tests/integration/swarm_test.py b/tests/integration/swarm_test.py
index 8c62f2e..fe01184 100644
--- a/tests/integration/swarm_test.py
+++ b/tests/integration/swarm_test.py
@@ -2,13 +2,10 @@ import docker
import pytest
from ..base import requires_api_version
-from .. import helpers
+from .base import BaseIntegrationTest
-BUSYBOX = helpers.BUSYBOX
-
-
-class SwarmTest(helpers.BaseTestCase):
+class SwarmTest(BaseIntegrationTest):
def setUp(self):
super(SwarmTest, self).setUp()
self.client.leave_swarm(force=True)
diff --git a/tests/integration/volume_test.py b/tests/integration/volume_test.py
index 8fa2dab..7e3ba8c 100644
--- a/tests/integration/volume_test.py
+++ b/tests/integration/volume_test.py
@@ -3,10 +3,11 @@ import pytest
from .. import helpers
from ..base import requires_api_version
+from .base import BaseIntegrationTest
@requires_api_version('1.21')
-class TestVolumes(helpers.BaseTestCase):
+class TestVolumes(BaseIntegrationTest):
def test_create_volume(self):
name = 'perfectcherryblossom'
self.tmp_volumes.append(name)