From a7f7fbb0fdd1ad247c413170c354d08deb43dd32 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Tue, 10 Feb 2015 12:43:56 -0800 Subject: [PATCH] rename() tests and docs --- docs/api.md | 9 +++++++++ tests/fake_api.py | 9 ++++++++- tests/integration_test.py | 12 ++++++++++++ tests/test.py | 15 +++++++++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index dba4cde6..1d162e9f 100644 --- a/docs/api.md +++ b/docs/api.md @@ -526,6 +526,15 @@ Remove an image. Similar to the `docker rmi` command. * force (bool): Force removal of the image * noprune (bool): Do not delete untagged parents +## rename + +Rename a container. Similar to the `docker rename` command. + +**Params**: + +* container (str): ID of the container to rename +* name (str): New name for the container + ## restart Restart a container. Similar to the `docker restart` command. diff --git a/tests/fake_api.py b/tests/fake_api.py index c0b323bc..d311fc11 100644 --- a/tests/fake_api.py +++ b/tests/fake_api.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -CURRENT_VERSION = 'v1.16' +CURRENT_VERSION = 'v1.17' FAKE_CONTAINER_ID = '3cc2351ab11b' FAKE_IMAGE_ID = 'e9aa60c60128' @@ -271,6 +271,11 @@ def post_fake_restart_container(): return status_code, response +def post_fake_rename_container(): + status_code = 204 + return status_code, None + + def delete_fake_remove_container(): status_code = 200 response = {'Id': FAKE_CONTAINER_ID} @@ -348,6 +353,8 @@ fake_responses = { post_fake_resize_container, '{1}/{0}/containers/3cc2351ab11b/json'.format(CURRENT_VERSION, prefix): get_fake_inspect_container, + '{1}/{0}/containers/3cc2351ab11b/rename'.format(CURRENT_VERSION, prefix): + post_fake_rename_container, '{1}/{0}/images/e9aa60c60128/tag'.format(CURRENT_VERSION, prefix): post_fake_tag_image, '{1}/{0}/containers/3cc2351ab11b/wait'.format(CURRENT_VERSION, prefix): diff --git a/tests/integration_test.py b/tests/integration_test.py index 32f32a00..46b630ec 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -322,6 +322,18 @@ class TestCreateContainerWithName(BaseTestCase): self.assertEqual('/foobar', inspect['Name']) +class TestRenameContainer(BaseTestCase): + def runTest(self): + name = 'hong_meiling' + res = self.client.create_container('busybox', 'true') + self.assertIn('Id', res) + self.tmp_containers.append(res['Id']) + self.client.rename(res, name) + inspect = self.client.inspect_container(res['Id']) + self.assertIn('Name', inspect) + self.assertEqual(name, inspect['Name']) + + class TestStartContainer(BaseTestCase): def runTest(self): res = self.client.create_container('busybox', 'true') diff --git a/tests/test.py b/tests/test.py index 7ada2a92..5c8f6ea1 100644 --- a/tests/test.py +++ b/tests/test.py @@ -1256,6 +1256,21 @@ class DockerClientTest(Cleanup, unittest.TestCase): timeout=docker.client.DEFAULT_TIMEOUT_SECONDS ) + def test_rename_container(self): + try: + self.client.rename( + {'Id': fake_api.FAKE_CONTAINER_ID}, + name='foobar' + ) + except Exception as e: + self.fail('Command shold not raise exception: {0}'.format(e)) + + fake_request.assert_called_with( + url_prefix + 'containers/3cc2351ab11b/rename', + params={'name': 'foobar'}, + timeout=docker.client.DEFAULT_TIMEOUT_SECONDS + ) + def test_wait(self): try: self.client.wait(fake_api.FAKE_CONTAINER_ID)