summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers.py4
-rw-r--r--tests/integration/api_service_test.py2
-rw-r--r--tests/integration/api_swarm_test.py28
-rw-r--r--tests/integration/base.py6
-rw-r--r--tests/integration/models_nodes_test.py4
-rw-r--r--tests/integration/models_services_test.py2
-rw-r--r--tests/integration/models_swarm_test.py6
7 files changed, 33 insertions, 19 deletions
diff --git a/tests/helpers.py b/tests/helpers.py
index 53cf57a..1e42363 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -74,3 +74,7 @@ def force_leave_swarm(client):
continue
else:
return
+
+
+def swarm_listen_addr():
+ return '0.0.0.0:{0}'.format(random.randrange(10000, 25000))
diff --git a/tests/integration/api_service_test.py b/tests/integration/api_service_test.py
index 04f2fe0..fc79400 100644
--- a/tests/integration/api_service_test.py
+++ b/tests/integration/api_service_test.py
@@ -10,7 +10,7 @@ class ServiceTest(BaseAPIIntegrationTest):
def setUp(self):
super(ServiceTest, self).setUp()
self.client.leave_swarm(force=True)
- self.client.init_swarm('eth0')
+ self.init_swarm()
def tearDown(self):
super(ServiceTest, self).tearDown()
diff --git a/tests/integration/api_swarm_test.py b/tests/integration/api_swarm_test.py
index a10437b..a8f439c 100644
--- a/tests/integration/api_swarm_test.py
+++ b/tests/integration/api_swarm_test.py
@@ -17,39 +17,37 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_init_swarm_simple(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
@requires_api_version('1.24')
def test_init_swarm_force_new_cluster(self):
pytest.skip('Test stalls the engine on 1.12.0')
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
version_1 = self.client.inspect_swarm()['Version']['Index']
- assert self.client.init_swarm('eth0', force_new_cluster=True)
+ assert self.client.init_swarm(force_new_cluster=True)
version_2 = self.client.inspect_swarm()['Version']['Index']
assert version_2 != version_1
@requires_api_version('1.24')
def test_init_already_in_cluster(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
with pytest.raises(docker.errors.APIError):
- self.client.init_swarm('eth0')
+ self.init_swarm()
@requires_api_version('1.24')
def test_init_swarm_custom_raft_spec(self):
spec = self.client.create_swarm_spec(
snapshot_interval=5000, log_entries_for_slow_followers=1200
)
- assert self.client.init_swarm(
- advertise_addr='eth0', swarm_spec=spec
- )
+ assert self.init_swarm(swarm_spec=spec)
swarm_info = self.client.inspect_swarm()
assert swarm_info['Spec']['Raft']['SnapshotInterval'] == 5000
assert swarm_info['Spec']['Raft']['LogEntriesForSlowFollowers'] == 1200
@requires_api_version('1.24')
def test_leave_swarm(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
with pytest.raises(docker.errors.APIError) as exc_info:
self.client.leave_swarm()
exc_info.value.response.status_code == 500
@@ -61,7 +59,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_update_swarm(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
swarm_info_1 = self.client.inspect_swarm()
spec = self.client.create_swarm_spec(
snapshot_interval=5000, log_entries_for_slow_followers=1200,
@@ -92,7 +90,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_update_swarm_name(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
swarm_info_1 = self.client.inspect_swarm()
spec = self.client.create_swarm_spec(
node_cert_expiry=7776000000000000, name='reimuhakurei'
@@ -110,7 +108,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_list_nodes(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
nodes_list = self.client.nodes()
assert len(nodes_list) == 1
node = nodes_list[0]
@@ -129,7 +127,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_inspect_node(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
nodes_list = self.client.nodes()
assert len(nodes_list) == 1
node = nodes_list[0]
@@ -139,7 +137,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_update_node(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
nodes_list = self.client.nodes()
node = nodes_list[0]
orig_spec = node['Spec']
@@ -162,7 +160,7 @@ class SwarmTest(BaseAPIIntegrationTest):
@requires_api_version('1.24')
def test_remove_main_node(self):
- assert self.client.init_swarm('eth0')
+ assert self.init_swarm()
nodes_list = self.client.nodes()
node_id = nodes_list[0]['ID']
with pytest.raises(docker.errors.NotFound):
diff --git a/tests/integration/base.py b/tests/integration/base.py
index ea43d05..4a41e6b 100644
--- a/tests/integration/base.py
+++ b/tests/integration/base.py
@@ -5,6 +5,7 @@ import docker
from docker.utils import kwargs_from_env
import six
+from .. import helpers
BUSYBOX = 'busybox:buildroot-2014.02'
@@ -90,3 +91,8 @@ class BaseAPIIntegrationTest(BaseIntegrationTest):
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
+
+ def init_swarm(self, **kwargs):
+ return self.client.init_swarm(
+ 'eth0', listen_addr=helpers.swarm_listen_addr(), **kwargs
+ )
diff --git a/tests/integration/models_nodes_test.py b/tests/integration/models_nodes_test.py
index 0199d69..9fd1659 100644
--- a/tests/integration/models_nodes_test.py
+++ b/tests/integration/models_nodes_test.py
@@ -1,5 +1,7 @@
import unittest
+
import docker
+
from .. import helpers
@@ -12,7 +14,7 @@ class NodesTest(unittest.TestCase):
def test_list_get_update(self):
client = docker.from_env()
- client.swarm.init()
+ client.swarm.init(listen_addr=helpers.swarm_listen_addr())
nodes = client.nodes.list()
assert len(nodes) == 1
assert nodes[0].attrs['Spec']['Role'] == 'manager'
diff --git a/tests/integration/models_services_test.py b/tests/integration/models_services_test.py
index baa40a9..a795df9 100644
--- a/tests/integration/models_services_test.py
+++ b/tests/integration/models_services_test.py
@@ -11,7 +11,7 @@ class ServiceTest(unittest.TestCase):
def setUpClass(cls):
client = docker.from_env()
helpers.force_leave_swarm(client)
- client.swarm.init()
+ client.swarm.init(listen_addr=helpers.swarm_listen_addr())
@classmethod
def tearDownClass(cls):
diff --git a/tests/integration/models_swarm_test.py b/tests/integration/models_swarm_test.py
index 72bf9e5..4f177f1 100644
--- a/tests/integration/models_swarm_test.py
+++ b/tests/integration/models_swarm_test.py
@@ -1,5 +1,7 @@
import unittest
+
import docker
+
from .. import helpers
@@ -12,7 +14,9 @@ class SwarmTest(unittest.TestCase):
def test_init_update_leave(self):
client = docker.from_env()
- client.swarm.init(snapshot_interval=5000)
+ client.swarm.init(
+ snapshot_interval=5000, listen_addr=helpers.swarm_listen_addr()
+ )
assert client.swarm.attrs['Spec']['Raft']['SnapshotInterval'] == 5000
client.swarm.update(snapshot_interval=10000)
assert client.swarm.attrs['Spec']['Raft']['SnapshotInterval'] == 10000