diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/helpers.py | 4 | ||||
-rw-r--r-- | tests/integration/api_service_test.py | 2 | ||||
-rw-r--r-- | tests/integration/api_swarm_test.py | 28 | ||||
-rw-r--r-- | tests/integration/base.py | 6 | ||||
-rw-r--r-- | tests/integration/models_nodes_test.py | 4 | ||||
-rw-r--r-- | tests/integration/models_services_test.py | 2 | ||||
-rw-r--r-- | tests/integration/models_swarm_test.py | 6 |
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 |