Browse Source

Fix leaky tests

It was mocking self.client but relying on the call to
utils.create_host_config which was not mocked. So now that function
has moved to also be on self.client we need to redefine the test
boundary, up to where we would call docker-py, not the result of
docker-py.

Signed-off-by: Mazz Mosley <[email protected]>
Mazz Mosley 10 năm trước cách đây
mục cha
commit
39ba2c5a7c
2 tập tin đã thay đổi với 14 bổ sung9 xóa
  1. 9 4
      tests/unit/cli_test.py
  2. 5 5
      tests/unit/service_test.py

+ 9 - 4
tests/unit/cli_test.py

@@ -144,8 +144,11 @@ class CLITestCase(unittest.TestCase):
             '--rm': None,
             '--name': None,
         })
-        _, _, call_kwargs = mock_client.create_container.mock_calls[0]
-        self.assertEquals(call_kwargs['host_config']['RestartPolicy']['Name'], 'always')
+
+        self.assertEquals(
+            mock_client.create_host_config.call_args[1]['restart_policy']['Name'],
+            'always'
+        )
 
         command = TopLevelCommand()
         mock_client = mock.create_autospec(docker.Client)
@@ -170,8 +173,10 @@ class CLITestCase(unittest.TestCase):
             '--rm': True,
             '--name': None,
         })
-        _, _, call_kwargs = mock_client.create_container.mock_calls[0]
-        self.assertFalse('RestartPolicy' in call_kwargs['host_config'])
+
+        self.assertFalse(
+            mock_client.create_host_config.call_args[1].get('restart_policy')
+        )
 
     def test_command_manula_and_service_ports_together(self):
         command = TopLevelCommand()

+ 5 - 5
tests/unit/service_test.py

@@ -543,13 +543,13 @@ class ServiceVolumesTest(unittest.TestCase):
             }
         }
 
-        create_options = service._get_container_create_options(
+        service._get_container_create_options(
             override_options={},
             number=1,
         )
 
         self.assertEqual(
-            set(create_options['host_config']['Binds']),
+            set(self.mock_client.create_host_config.call_args[1]['binds']),
             set([
                 '/host/path:/data1:rw',
                 '/host/path:/data2:rw',
@@ -581,14 +581,14 @@ class ServiceVolumesTest(unittest.TestCase):
             },
         }
 
-        create_options = service._get_container_create_options(
+        service._get_container_create_options(
             override_options={},
             number=1,
             previous_container=Container(self.mock_client, {'Id': '123123123'}),
         )
 
         self.assertEqual(
-            create_options['host_config']['Binds'],
+            self.mock_client.create_host_config.call_args[1]['binds'],
             ['/mnt/sda1/host/path:/data:rw'],
         )
 
@@ -613,4 +613,4 @@ class ServiceVolumesTest(unittest.TestCase):
         ).create_container()
 
         self.assertEqual(len(create_calls), 1)
-        self.assertEqual(create_calls[0][1]['host_config']['Binds'], volumes)
+        self.assertEqual(self.mock_client.create_host_config.call_args[1]['binds'], volumes)