| # -*- coding: utf-8 -*- |
| |
| import json |
| |
| from . import fake_api |
| from ..helpers import requires_api_version |
| from .api_test import BaseAPIClientTest, url_prefix, fake_request |
| |
| |
| class SwarmTest(BaseAPIClientTest): |
| @requires_api_version('1.24') |
| def test_node_update(self): |
| node_spec = { |
| 'Availability': 'active', |
| 'Name': 'node-name', |
| 'Role': 'manager', |
| 'Labels': {'foo': 'bar'} |
| } |
| |
| self.client.update_node( |
| node_id=fake_api.FAKE_NODE_ID, version=1, node_spec=node_spec |
| ) |
| args = fake_request.call_args |
| assert args[0][1] == ( |
| url_prefix + 'nodes/24ifsmvkjbyhk/update?version=1' |
| ) |
| assert json.loads(args[1]['data']) == node_spec |
| assert args[1]['headers']['Content-Type'] == 'application/json' |
| |
| @requires_api_version('1.24') |
| def test_join_swarm(self): |
| remote_addr = ['1.2.3.4:2377'] |
| listen_addr = '2.3.4.5:2377' |
| join_token = 'A_BEAUTIFUL_JOIN_TOKEN' |
| |
| data = { |
| 'RemoteAddrs': remote_addr, |
| 'ListenAddr': listen_addr, |
| 'JoinToken': join_token |
| } |
| |
| self.client.join_swarm( |
| remote_addrs=remote_addr, |
| listen_addr=listen_addr, |
| join_token=join_token |
| ) |
| |
| args = fake_request.call_args |
| |
| assert (args[0][1] == url_prefix + 'swarm/join') |
| assert (json.loads(args[1]['data']) == data) |
| assert (args[1]['headers']['Content-Type'] == 'application/json') |
| |
| @requires_api_version('1.24') |
| def test_join_swarm_no_listen_address_takes_default(self): |
| remote_addr = ['1.2.3.4:2377'] |
| join_token = 'A_BEAUTIFUL_JOIN_TOKEN' |
| |
| data = { |
| 'RemoteAddrs': remote_addr, |
| 'ListenAddr': '0.0.0.0:2377', |
| 'JoinToken': join_token |
| } |
| |
| self.client.join_swarm(remote_addrs=remote_addr, join_token=join_token) |
| |
| args = fake_request.call_args |
| |
| assert (args[0][1] == url_prefix + 'swarm/join') |
| assert (json.loads(args[1]['data']) == data) |
| assert (args[1]['headers']['Content-Type'] == 'application/json') |