Skip to content

Commit d600073

Browse files
committed
Merge branch 'posita-raise-on-inspect-empty-string-602'
2 parents 4aa2fa6 + fe12dad commit d600073

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

docker/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,8 @@ def inspect_container(self, container):
747747

748748
@check_resource
749749
def inspect_image(self, image):
750+
if isinstance(image, dict):
751+
image = image.get('Id')
750752
return self._result(
751753
self._get(self._url("/images/{0}/json".format(image))),
752754
True

docker/utils/decorators.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ def wrapped(self, resource_id=None, *args, **kwargs):
88
resource_id = kwargs.pop('container')
99
elif kwargs.get('image'):
1010
resource_id = kwargs.pop('image')
11-
else:
12-
raise errors.NullResource(
13-
'image or container param is undefined'
14-
)
11+
if not resource_id:
12+
raise errors.NullResource(
13+
'image or container param is undefined'
14+
)
1515
return f(self, resource_id, *args, **kwargs)
1616
return wrapped

tests/test.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1781,12 +1781,21 @@ def test_inspect_container(self):
17811781
self.client.inspect_container(fake_api.FAKE_CONTAINER_ID)
17821782
except Exception as e:
17831783
self.fail('Command should not raise exception: {0}'.format(e))
1784-
17851784
fake_request.assert_called_with(
17861785
url_prefix + 'containers/3cc2351ab11b/json',
17871786
timeout=DEFAULT_TIMEOUT_SECONDS
17881787
)
17891788

1789+
def test_inspect_container_empty_id(self):
1790+
try:
1791+
self.client.inspect_container('')
1792+
except docker.errors.NullResource as e:
1793+
self.assertEqual(
1794+
e.args[0], 'image or container param is undefined'
1795+
)
1796+
else:
1797+
self.fail('Command expected NullResource exception')
1798+
17901799
def test_container_stats(self):
17911800
try:
17921801
self.client.stats(fake_api.FAKE_CONTAINER_ID)
@@ -1958,6 +1967,16 @@ def test_inspect_image(self):
19581967
timeout=DEFAULT_TIMEOUT_SECONDS
19591968
)
19601969

1970+
def test_inspect_image_empty_id(self):
1971+
try:
1972+
self.client.inspect_image('')
1973+
except docker.errors.NullResource as e:
1974+
self.assertEqual(
1975+
e.args[0], 'image or container param is undefined'
1976+
)
1977+
else:
1978+
self.fail('Command expected NullResource exception')
1979+
19611980
def test_insert_image(self):
19621981
try:
19631982
self.client.insert(fake_api.FAKE_IMAGE_NAME,

0 commit comments

Comments
 (0)