ソースを参照

Merge pull request #2083 from dnephin/fix_test_assumes_busybox

Fix a test case that assumes busybox image id
Daniel Nephin 10 年 前
コミット
27e09dae5f
2 ファイル変更14 行追加2 行削除
  1. 5 2
      tests/integration/service_test.py
  2. 9 0
      tests/integration/testcases.py

+ 5 - 2
tests/integration/service_test.py

@@ -12,6 +12,7 @@ from six import text_type
 
 from .. import mock
 from .testcases import DockerClientTestCase
+from .testcases import pull_busybox
 from compose import __version__
 from compose.const import LABEL_CONTAINER_NUMBER
 from compose.const import LABEL_ONE_OFF
@@ -549,8 +550,10 @@ class ServiceTest(DockerClientTestCase):
         })
 
     def test_create_with_image_id(self):
-        # Image id for the current busybox:latest
-        service = self.create_service('foo', image='8c2e06607696')
+        # Get image id for the current busybox:latest
+        pull_busybox(self.client)
+        image_id = self.client.inspect_image('busybox:latest')['Id'][:12]
+        service = self.create_service('foo', image=image_id)
         service.create_container()
 
     def test_scale(self):

+ 9 - 0
tests/integration/testcases.py

@@ -1,6 +1,8 @@
 from __future__ import absolute_import
 from __future__ import unicode_literals
 
+from docker import errors
+
 from .. import unittest
 from compose.cli.docker_client import docker_client
 from compose.config.config import ServiceLoader
@@ -9,6 +11,13 @@ from compose.progress_stream import stream_output
 from compose.service import Service
 
 
+def pull_busybox(client):
+    try:
+        client.inspect_image('busybox:latest')
+    except errors.APIError:
+        client.pull('busybox:latest', stream=False)
+
+
 class DockerClientTestCase(unittest.TestCase):
     @classmethod
     def setUpClass(cls):