From e255c10f572880d21929b5525d498d8643f4932c Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Thu, 26 Feb 2015 17:39:44 -0800 Subject: [PATCH] Ensure integration tests work with LXC exec driver --- tests/integration_test.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/integration_test.py b/tests/integration_test.py index 869d61e8..9c9d2538 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -32,6 +32,7 @@ from test import Cleanup # export; history; import_image; insert; port; push; tag; get; load; stats; DEFAULT_BASE_URL = os.environ.get('DOCKER_HOST') +EXEC_DRIVER_IS_NATIVE = True warnings.simplefilter('error') create_host_config = docker.utils.create_host_config @@ -312,6 +313,7 @@ class TestStartContainerWithRoBinds(BaseTestCase): self.assertFalse(inspect_data['VolumesRW'][mount_dest]) +@unittest.skipIf(not EXEC_DRIVER_IS_NATIVE) class TestCreateContainerReadOnlyFs(BaseTestCase): def runTest(self): ctnr = self.client.create_container( @@ -325,6 +327,7 @@ class TestCreateContainerReadOnlyFs(BaseTestCase): self.assertNotEqual(res, 0) +@unittest.skipIf(not EXEC_DRIVER_IS_NATIVE) class TestStartContainerReadOnlyFs(BaseTestCase): def runTest(self): # Presumably a bug in 1.5.0 @@ -581,7 +584,8 @@ class TestStop(BaseTestCase): self.assertIn('State', container_info) state = container_info['State'] self.assertIn('ExitCode', state) - self.assertNotEqual(state['ExitCode'], 0) + if EXEC_DRIVER_IS_NATIVE: + self.assertNotEqual(state['ExitCode'], 0) self.assertIn('Running', state) self.assertEqual(state['Running'], False) @@ -598,7 +602,8 @@ class TestStopWithDictInsteadOfId(BaseTestCase): self.assertIn('State', container_info) state = container_info['State'] self.assertIn('ExitCode', state) - self.assertNotEqual(state['ExitCode'], 0) + if EXEC_DRIVER_IS_NATIVE: + self.assertNotEqual(state['ExitCode'], 0) self.assertIn('Running', state) self.assertEqual(state['Running'], False) @@ -614,7 +619,8 @@ class TestKill(BaseTestCase): self.assertIn('State', container_info) state = container_info['State'] self.assertIn('ExitCode', state) - self.assertNotEqual(state['ExitCode'], 0) + if EXEC_DRIVER_IS_NATIVE: + self.assertNotEqual(state['ExitCode'], 0) self.assertIn('Running', state) self.assertEqual(state['Running'], False) @@ -630,7 +636,8 @@ class TestKillWithDictInsteadOfId(BaseTestCase): self.assertIn('State', container_info) state = container_info['State'] self.assertIn('ExitCode', state) - self.assertNotEqual(state['ExitCode'], 0) + if EXEC_DRIVER_IS_NATIVE: + self.assertNotEqual(state['ExitCode'], 0) self.assertIn('Running', state) self.assertEqual(state['Running'], False) @@ -978,6 +985,7 @@ class TestRestartingContainer(BaseTestCase): self.client.remove_container(id, force=True) +@unittest.skipIf(not EXEC_DRIVER_IS_NATIVE) class TestExecuteCommand(BaseTestCase): def runTest(self): container = self.client.create_container('busybox', 'cat', @@ -991,6 +999,7 @@ class TestExecuteCommand(BaseTestCase): self.assertEqual(res, expected) +@unittest.skipIf(not EXEC_DRIVER_IS_NATIVE) class TestExecuteCommandString(BaseTestCase): def runTest(self): container = self.client.create_container('busybox', 'cat', @@ -1004,6 +1013,7 @@ class TestExecuteCommandString(BaseTestCase): self.assertEqual(res, expected) +@unittest.skipIf(not EXEC_DRIVER_IS_NATIVE) class TestExecuteCommandStreaming(BaseTestCase): def runTest(self): container = self.client.create_container('busybox', 'cat', @@ -1458,5 +1468,7 @@ class TestRegressions(unittest.TestCase): if __name__ == '__main__': c = docker.Client(base_url=DEFAULT_BASE_URL) c.pull('busybox') + exec_driver = c.info()['ExecutionDriver'] + EXEC_DRIVER_IS_NATIVE = exec_driver.startswith('native') c.close() unittest.main()