Bläddra i källkod

Merge pull request #554 from dnephin/more_defensive_stream

Fix a couple bugs with 1.0 release and Docker 1.3
Aanand Prasad 11 år sedan
förälder
incheckning
392c118bbc

+ 1 - 1
fig/cli/docker_client.py

@@ -11,7 +11,7 @@ def docker_client():
     """
     cert_path = os.environ.get('DOCKER_CERT_PATH', '')
     if cert_path == '':
-        cert_path = os.path.join(os.environ.get('HOME'), '.docker')
+        cert_path = os.path.join(os.environ.get('HOME', ''), '.docker')
 
     base_url = os.environ.get('DOCKER_HOST')
     tls_config = None

+ 3 - 1
fig/progress_stream.py

@@ -19,7 +19,9 @@ def stream_output(output, stream):
         all_events.append(event)
 
         if 'progress' in event or 'progressDetail' in event:
-            image_id = event['id']
+            image_id = event.get('id')
+            if not image_id:
+                continue
 
             if image_id in lines:
                 diff = len(lines) - lines[image_id]

+ 16 - 0
tests/unit/cli/docker_client_test.py

@@ -0,0 +1,16 @@
+from __future__ import unicode_literals
+from __future__ import absolute_import
+import os
+
+import mock
+from tests import unittest
+
+from fig.cli import docker_client 
+
+
+class DockerClientTestCase(unittest.TestCase):
+
+    def test_docker_client_no_home(self):
+        with mock.patch.dict(os.environ):
+            del os.environ['HOME']
+            docker_client.docker_client()

+ 1 - 1
tests/unit/cli/verbose_proxy_test.py

@@ -5,7 +5,7 @@ from tests import unittest
 from fig.cli import verbose_proxy
 
 
-class VerboseProxy(unittest.TestCase):
+class VerboseProxyTestCase(unittest.TestCase):
 
     def test_format_call(self):
         expected = "(u'arg1', True, key=u'value')"

+ 20 - 0
tests/unit/progress_stream_test.py

@@ -0,0 +1,20 @@
+from __future__ import unicode_literals
+from __future__ import absolute_import
+from tests import unittest
+
+import mock
+from six import StringIO
+
+from fig import progress_stream 
+
+
+class ProgressStreamTestCase(unittest.TestCase):
+
+    def test_stream_output(self):
+        output = [
+            '{"status": "Downloading", "progressDetail": {"current": '
+            '31019763, "start": 1413653874, "total": 62763875}, '
+            '"progress": "..."}',
+        ]
+        events = progress_stream.stream_output(output, StringIO())
+        self.assertEqual(len(events), 1)

+ 1 - 0
tox.ini

@@ -13,3 +13,4 @@ commands =
 [flake8]
 # ignore line-length for now
 ignore = E501,E203
+exclude = fig/packages