Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions docker/utils/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@

def check_resource(f):
def wrapped(self, resource_id=None, *args, **kwargs):
if resource_id is None and (
kwargs.get('container') is None and kwargs.get('image') is None
):
raise errors.NullResource(
'image or container param is None'
)
if resource_id is None:
if kwargs.get('container'):
resource_id = kwargs.pop('container')
elif kwargs.get('image'):
resource_id = kwargs.pop('image')
else:
raise errors.NullResource(
'image or container param is undefined'
)
return f(self, resource_id, *args, **kwargs)
return wrapped
2 changes: 1 addition & 1 deletion docker/version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
version = "1.2.1-dev"
version = "1.2.1"
version_info = tuple([int(d) for d in version.replace("-dev", "").split(".")])
8 changes: 8 additions & 0 deletions docs/change_log.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
Change Log
==========

1.2.1
-----

### Bugfixes

* Fixed a bug where the check_resource decorator would break with some
argument-passing methods. (#573)

1.2.0
-----

Expand Down
10 changes: 8 additions & 2 deletions tests/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -675,17 +675,23 @@ def test_start_container_none(self):
try:
self.client.start(container=None)
except ValueError as e:
self.assertEqual(str(e), 'image or container param is None')
self.assertEqual(str(e), 'image or container param is undefined')
else:
self.fail('Command should raise ValueError')

try:
self.client.start(None)
except ValueError as e:
self.assertEqual(str(e), 'image or container param is None')
self.assertEqual(str(e), 'image or container param is undefined')
else:
self.fail('Command should raise ValueError')

def test_start_container_regression_573(self):
try:
self.client.start(**{'container': fake_api.FAKE_CONTAINER_ID})
except Exception as e:
self.fail('Command should not raise exception: {0}'.format(e))

def test_create_container_with_lxc_conf(self):
try:
self.client.create_container(
Expand Down