浏览代码

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

Dan Helfman 6 年之前
父节点
当前提交
2bfd7518c5
共有 2 个文件被更改,包括 18 次插入2 次删除
  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
     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
     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.
     directories are ignored.
 
 
     Return paths even if they don't exist on disk, so the user can find out about missing
     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)):
         for filename in sorted(os.listdir(path)):
             full_filename = os.path.join(path, filename)
             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
                 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
     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():
 def test_collect_config_filenames_collects_files_from_given_directories_and_ignores_sub_directories():
     config_paths = ('config.yaml', '/etc/borgmatic.d')
     config_paths = ('config.yaml', '/etc/borgmatic.d')
     mock_path = flexmock(module.os.path)
     mock_path = flexmock(module.os.path)