Pārlūkot izejas kodu

Fix for spurious Borg traceback when initializing a repository in an empty directory (#201).

Dan Helfman 5 gadi atpakaļ
vecāks
revīzija
9585c8f908
4 mainītis faili ar 7 papildinājumiem un 4 dzēšanām
  1. 3 0
      NEWS
  2. 1 1
      borgmatic/execute.py
  3. 1 1
      setup.py
  4. 2 2
      tests/unit/test_execute.py

+ 3 - 0
NEWS

@@ -1,3 +1,6 @@
+1.3.16.dev0
+ * #201: Fix for spurious Borg traceback when initializing a repository in an empty directory.
+
 1.3.15
  * #208: Fix for traceback when the "checks" option has an empty value.
  * #209: Bypass Borg error about a moved repository via "relocated_repo_access_is_ok" option in

+ 1 - 1
borgmatic/execute.py

@@ -57,7 +57,7 @@ def execute_command(full_command, output_log_level=logging.INFO, shell=False):
     logger.debug(' '.join(full_command))
 
     if output_log_level is None:
-        output = subprocess.check_output(full_command, shell=shell)
+        output = subprocess.check_output(full_command, stderr=subprocess.STDOUT, shell=shell)
         return output.decode() if output is not None else None
     else:
         execute_and_log_output(full_command, output_log_level, shell=shell)

+ 1 - 1
setup.py

@@ -1,6 +1,6 @@
 from setuptools import find_packages, setup
 
-VERSION = '1.3.15'
+VERSION = '1.3.16.dev0'
 
 
 setup(

+ 2 - 2
tests/unit/test_execute.py

@@ -31,7 +31,7 @@ def test_execute_command_captures_output():
     full_command = ['foo', 'bar']
     expected_output = '[]'
     flexmock(module.subprocess).should_receive('check_output').with_args(
-        full_command, shell=False
+        full_command, stderr=module.subprocess.STDOUT, shell=False
     ).and_return(flexmock(decode=lambda: expected_output)).once()
 
     output = module.execute_command(full_command, output_log_level=None)
@@ -43,7 +43,7 @@ def test_execute_command_captures_output_with_shell():
     full_command = ['foo', 'bar']
     expected_output = '[]'
     flexmock(module.subprocess).should_receive('check_output').with_args(
-        full_command, shell=True
+        full_command, stderr=module.subprocess.STDOUT, shell=True
     ).and_return(flexmock(decode=lambda: expected_output)).once()
 
     output = module.execute_command(full_command, output_log_level=None, shell=True)