Bladeren bron

Show a nicer error when the env file doesn't exist

Closes #865

Signed-off-by: Aanand Prasad <[email protected]>
Aanand Prasad 10 jaren geleden
bovenliggende
commit
de07e0471e
2 gewijzigde bestanden met toevoegingen van 8 en 0 verwijderingen
  1. 4 0
      compose/service.py
  2. 4 0
      tests/unit/service_test.py

+ 4 - 0
compose/service.py

@@ -95,6 +95,10 @@ class Service(object):
         if 'image' in options and 'build' in options:
             raise ConfigError('Service %s has both an image and build path specified. A service can either be built to image or use an existing image, not both.' % name)
 
+        for filename in get_env_files(options):
+            if not os.path.exists(filename):
+                raise ConfigError("Couldn't find env file for service %s: %s" % (name, filename))
+
         supported_options = DOCKER_CONFIG_KEYS + ['build', 'expose',
                                                   'external_links']
 

+ 4 - 0
tests/unit/service_test.py

@@ -378,6 +378,10 @@ class ServiceEnvironmentTest(unittest.TestCase):
             {'ONE': '2', 'TWO': '1', 'THREE': '3', 'FOO': 'baz', 'DOO': 'dah'}
             )
 
+    def test_env_nonexistent_file(self):
+        self.assertRaises(ConfigError, lambda: Service('foo', env_file='tests/fixtures/env/nonexistent.env'))
+
+
     @mock.patch.dict(os.environ)
     def test_resolve_environment_from_file(self):
         os.environ['FILE_DEF'] = 'E1'