From d6a86e1d69aa39b47c774794f87199d5e18d687e Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 11 Sep 2015 17:04:20 -0700 Subject: [PATCH 1/3] Fix volumes tests for API version >= 1.20 Signed-off-by: Joffrey F --- tests/integration_test.py | 51 +++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/tests/integration_test.py b/tests/integration_test.py index f8016276..c22fe1fa 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -264,14 +264,25 @@ class TestCreateContainerWithBinds(BaseTestCase): if six.PY3: logs = logs.decode('utf-8') self.assertIn(self.filename, logs) - - # FIXME: format changes in API version >= 1.20 inspect_data = self.client.inspect_container(container) - self.assertEqual( - self.mount_origin, - inspect_data['Volumes'][self.mount_dest] - ) - self.assertTrue(inspect_data['VolumesRW'][self.mount_dest]) + if docker.utils.compare_version('1.20', self.client._version) < 0: + self.assertIn('Volumes', inspect_data) + self.assertIn(self.mount_dest, inspect_data['Volumes']) + self.assertEqual( + self.mount_origin, inspect_data['Volumes'][self.mount_dest] + ) + self.assertIn(self.mount_dest, inspect_data['VolumesRW']) + self.assertTrue(inspect_data['VolumesRW'][self.mount_dest]) + else: + self.assertIn('Mounts', inspect_data) + filtered = filter( + lambda x: x['Destination'] == self.mount_dest, + inspect_data['Mounts'] + ) + self.assertEqual(len(filtered), 1) + mount_data = filtered[0] + self.assertEqual(mount_data['Source'], self.mount_origin) + self.assertTrue(mount_data['RW']) def test_ro(self): container = self.run_with_volume( @@ -285,13 +296,26 @@ class TestCreateContainerWithBinds(BaseTestCase): logs = logs.decode('utf-8') self.assertIn(self.filename, logs) - # FIXME: format changes in API version >= 1.20 + self.assertIn(self.filename, logs) inspect_data = self.client.inspect_container(container) - self.assertEqual( - self.mount_origin, - inspect_data['Volumes'][self.mount_dest] - ) - self.assertFalse(inspect_data['VolumesRW'][self.mount_dest]) + if docker.utils.compare_version('1.20', self.client._version) < 0: + self.assertIn('Volumes', inspect_data) + self.assertIn(self.mount_dest, inspect_data['Volumes']) + self.assertEqual( + self.mount_origin, inspect_data['Volumes'][self.mount_dest] + ) + self.assertIn(self.mount_dest, inspect_data['VolumesRW']) + self.assertFalse(inspect_data['VolumesRW'][self.mount_dest]) + else: + self.assertIn('Mounts', inspect_data) + filtered = filter( + lambda x: x['Destination'] == self.mount_dest, + inspect_data['Mounts'] + ) + self.assertEqual(len(filtered), 1) + mount_data = filtered[0] + self.assertEqual(mount_data['Source'], self.mount_origin) + self.assertFalse(mount_data['RW']) @requires_api_version('1.20') @@ -325,6 +349,7 @@ class CreateContainerWithGroupAddTest(BaseTestCase): logs = self.client.logs(container) if six.PY3: logs = logs.decode('utf-8') + groups = logs.strip().split(' ') self.assertIn('1000', groups) self.assertIn('1001', groups) From da2b797323a4acf61062a38c7bed957c4f0b84b6 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Tue, 22 Sep 2015 14:30:03 -0700 Subject: [PATCH 2/3] Improve volume bindings integration test Signed-off-by: Joffrey F --- tests/integration_test.py | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/tests/integration_test.py b/tests/integration_test.py index c22fe1fa..228a2c5a 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -265,24 +265,7 @@ class TestCreateContainerWithBinds(BaseTestCase): logs = logs.decode('utf-8') self.assertIn(self.filename, logs) inspect_data = self.client.inspect_container(container) - if docker.utils.compare_version('1.20', self.client._version) < 0: - self.assertIn('Volumes', inspect_data) - self.assertIn(self.mount_dest, inspect_data['Volumes']) - self.assertEqual( - self.mount_origin, inspect_data['Volumes'][self.mount_dest] - ) - self.assertIn(self.mount_dest, inspect_data['VolumesRW']) - self.assertTrue(inspect_data['VolumesRW'][self.mount_dest]) - else: - self.assertIn('Mounts', inspect_data) - filtered = filter( - lambda x: x['Destination'] == self.mount_dest, - inspect_data['Mounts'] - ) - self.assertEqual(len(filtered), 1) - mount_data = filtered[0] - self.assertEqual(mount_data['Source'], self.mount_origin) - self.assertTrue(mount_data['RW']) + self.check_container_data(inspect_data, True) def test_ro(self): container = self.run_with_volume( @@ -298,6 +281,9 @@ class TestCreateContainerWithBinds(BaseTestCase): self.assertIn(self.filename, logs) inspect_data = self.client.inspect_container(container) + self.check_container_data(inspect_data, False) + + def check_container_data(self, inspect_data, rw): if docker.utils.compare_version('1.20', self.client._version) < 0: self.assertIn('Volumes', inspect_data) self.assertIn(self.mount_dest, inspect_data['Volumes']) @@ -308,14 +294,14 @@ class TestCreateContainerWithBinds(BaseTestCase): self.assertFalse(inspect_data['VolumesRW'][self.mount_dest]) else: self.assertIn('Mounts', inspect_data) - filtered = filter( + filtered = list(filter( lambda x: x['Destination'] == self.mount_dest, inspect_data['Mounts'] - ) + )) self.assertEqual(len(filtered), 1) mount_data = filtered[0] self.assertEqual(mount_data['Source'], self.mount_origin) - self.assertFalse(mount_data['RW']) + self.assertEqual(mount_data['RW'], rw) @requires_api_version('1.20') From 48d72f670340b969d0e894cd6e368f76bd428bb8 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Tue, 22 Sep 2015 14:30:55 -0700 Subject: [PATCH 3/3] Bump default API version Signed-off-by: Joffrey F --- docker/constants.py | 2 +- tests/integration_test.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/constants.py b/docker/constants.py index 10a2feec..3647a3b5 100644 --- a/docker/constants.py +++ b/docker/constants.py @@ -1,4 +1,4 @@ -DEFAULT_DOCKER_API_VERSION = '1.19' +DEFAULT_DOCKER_API_VERSION = '1.20' DEFAULT_TIMEOUT_SECONDS = 60 STREAM_HEADER_SIZE_BYTES = 8 CONTAINER_LIMITS_KEYS = [ diff --git a/tests/integration_test.py b/tests/integration_test.py index 228a2c5a..763c8637 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -279,7 +279,6 @@ class TestCreateContainerWithBinds(BaseTestCase): logs = logs.decode('utf-8') self.assertIn(self.filename, logs) - self.assertIn(self.filename, logs) inspect_data = self.client.inspect_container(container) self.check_container_data(inspect_data, False)