Forráskód Böngészése

Look for .yml configuration file extension in addition to .yaml (#178).

Dan Helfman 6 éve
szülő
commit
2bfd7518c5
2 módosított fájl, 18 hozzáadás és 2 törlés
  1. 3 2
      borgmatic/config/collect.py
  2. 15 0
      tests/unit/config/test_collect.py

+ 3 - 2
borgmatic/config/collect.py

@@ -22,7 +22,7 @@ def collect_config_filenames(config_paths):
     '''
     Given a sequence of config paths, both filenames and directories, resolve that to an iterable
     of files. Accomplish this by listing any given directories looking for contained config files
-    (ending with the ".yaml" extension). This is non-recursive, so any directories within the given
+    (ending with the ".yaml" or ".yml" extension). This is non-recursive, so any directories within the given
     directories are ignored.
 
     Return paths even if they don't exist on disk, so the user can find out about missing
@@ -43,5 +43,6 @@ def collect_config_filenames(config_paths):
 
         for filename in sorted(os.listdir(path)):
             full_filename = os.path.join(path, filename)
-            if full_filename.endswith('.yaml') and not os.path.isdir(full_filename):
+            matching_filetype = full_filename.endswith('.yaml') or full_filename.endswith('.yml')
+            if matching_filetype and not os.path.isdir(full_filename):
                 yield full_filename

+ 15 - 0
tests/unit/config/test_collect.py

@@ -30,6 +30,21 @@ def test_collect_config_filenames_collects_given_files():
     assert config_filenames == config_paths
 
 
+def test_collect_config_filenames_collects_yml_file_endings():
+    config_paths = ('config.yaml', '/etc/borgmatic.d')
+    mock_path = flexmock(module.os.path)
+    mock_path.should_receive('exists').and_return(True)
+    mock_path.should_receive('isdir').with_args('config.yaml').and_return(False)
+    mock_path.should_receive('isdir').with_args('/etc/borgmatic.d').and_return(True)
+    mock_path.should_receive('isdir').with_args('/etc/borgmatic.d/foo.yml').and_return(False)
+    flexmock(module.os).should_receive('listdir')
+    flexmock(sys.modules['builtins']).should_receive('sorted').and_return(['foo.yml'])
+
+    config_filenames = tuple(module.collect_config_filenames(config_paths))
+
+    assert config_filenames == ('config.yaml', '/etc/borgmatic.d/foo.yml')
+
+
 def test_collect_config_filenames_collects_files_from_given_directories_and_ignores_sub_directories():
     config_paths = ('config.yaml', '/etc/borgmatic.d')
     mock_path = flexmock(module.os.path)