Skip to content

Commit e8ef5e5

Browse files
authored
Merge pull request #1111 from docker/1.9.0-release
Cherry-pick signal fix into 1.9.0 release branch
2 parents 9010d59 + 0d8624b commit e8ef5e5

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
lines changed

docker/api/container.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,9 @@ def kill(self, container, signal=None):
187187
url = self._url("/containers/{0}/kill", container)
188188
params = {}
189189
if signal is not None:
190-
params['signal'] = int(signal)
190+
if not isinstance(signal, six.string_types):
191+
signal = int(signal)
192+
params['signal'] = signal
191193
res = self._post(url, params=params)
192194

193195
self._raise_for_status(res)

tests/integration/container_test.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,36 @@ def test_kill_with_signal(self):
840840
self.assertIn('Running', state)
841841
self.assertEqual(state['Running'], False, state)
842842

843+
def test_kill_with_signal_name(self):
844+
id = self.client.create_container(BUSYBOX, ['sleep', '60'])
845+
self.client.start(id)
846+
self.tmp_containers.append(id)
847+
self.client.kill(id, signal='SIGKILL')
848+
exitcode = self.client.wait(id)
849+
self.assertNotEqual(exitcode, 0)
850+
container_info = self.client.inspect_container(id)
851+
self.assertIn('State', container_info)
852+
state = container_info['State']
853+
self.assertIn('ExitCode', state)
854+
self.assertNotEqual(state['ExitCode'], 0)
855+
self.assertIn('Running', state)
856+
self.assertEqual(state['Running'], False, state)
857+
858+
def test_kill_with_signal_integer(self):
859+
id = self.client.create_container(BUSYBOX, ['sleep', '60'])
860+
self.client.start(id)
861+
self.tmp_containers.append(id)
862+
self.client.kill(id, signal=9)
863+
exitcode = self.client.wait(id)
864+
self.assertNotEqual(exitcode, 0)
865+
container_info = self.client.inspect_container(id)
866+
self.assertIn('State', container_info)
867+
state = container_info['State']
868+
self.assertIn('ExitCode', state)
869+
self.assertNotEqual(state['ExitCode'], 0)
870+
self.assertIn('Running', state)
871+
self.assertEqual(state['Running'], False, state)
872+
843873

844874
class PortTest(helpers.BaseTestCase):
845875
def test_port(self):

tests/integration/network_test.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,11 @@ def test_connect_with_aliases(self):
138138
self.client.connect_container_to_network(
139139
container, net_id, aliases=['foo', 'bar'])
140140
container_data = self.client.inspect_container(container)
141-
self.assertEqual(
142-
container_data['NetworkSettings']['Networks'][net_name]['Aliases'],
143-
['foo', 'bar'])
141+
aliases = (
142+
container_data['NetworkSettings']['Networks'][net_name]['Aliases']
143+
)
144+
assert 'foo' in aliases
145+
assert 'bar' in aliases
144146

145147
@requires_api_version('1.21')
146148
def test_connect_on_container_create(self):
@@ -183,10 +185,11 @@ def test_create_with_aliases(self):
183185
self.client.start(container)
184186

185187
container_data = self.client.inspect_container(container)
186-
self.assertEqual(
187-
container_data['NetworkSettings']['Networks'][net_name]['Aliases'],
188-
['foo', 'bar']
188+
aliases = (
189+
container_data['NetworkSettings']['Networks'][net_name]['Aliases']
189190
)
191+
assert 'foo' in aliases
192+
assert 'bar' in aliases
190193

191194
@requires_api_version('1.22')
192195
def test_create_with_ipv4_address(self):

0 commit comments

Comments
 (0)