Skip to content

Commit f6b816c

Browse files
committed
Fix #573
1 parent aceb7a6 commit f6b816c

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

docker/utils/decorators.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33

44
def check_resource(f):
55
def wrapped(self, resource_id=None, *args, **kwargs):
6-
if resource_id is None and (
7-
kwargs.get('container') is None and kwargs.get('image') is None
8-
):
9-
raise errors.NullResource(
10-
'image or container param is None'
11-
)
6+
if resource_id is None:
7+
if kwargs.get('container'):
8+
resource_id = kwargs.pop('container')
9+
elif kwargs.get('image'):
10+
resource_id = kwargs.pop('image')
11+
else:
12+
raise errors.NullResource(
13+
'image or container param is undefined'
14+
)
1215
return f(self, resource_id, *args, **kwargs)
1316
return wrapped

tests/test.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,17 +675,23 @@ def test_start_container_none(self):
675675
try:
676676
self.client.start(container=None)
677677
except ValueError as e:
678-
self.assertEqual(str(e), 'image or container param is None')
678+
self.assertEqual(str(e), 'image or container param is undefined')
679679
else:
680680
self.fail('Command should raise ValueError')
681681

682682
try:
683683
self.client.start(None)
684684
except ValueError as e:
685-
self.assertEqual(str(e), 'image or container param is None')
685+
self.assertEqual(str(e), 'image or container param is undefined')
686686
else:
687687
self.fail('Command should raise ValueError')
688688

689+
def test_start_container_regression_573(self):
690+
try:
691+
self.client.start(**{'container': fake_api.FAKE_CONTAINER_ID})
692+
except Exception as e:
693+
self.fail('Command should not raise exception: {0}'.format(e))
694+
689695
def test_create_container_with_lxc_conf(self):
690696
try:
691697
self.client.create_container(

0 commit comments

Comments
 (0)