mirror of
https://github.com/psy0rz/zfs_autobackup.git
synced 2025-04-15 22:50:32 +03:00
input=None would read stdin from terminal, causing hangs
This commit is contained in:
parent
e54c275685
commit
1ffd9a15a3
@ -364,7 +364,8 @@ class ExecuteNode(Logger):
|
||||
|
||||
#determine stdin
|
||||
if input==None:
|
||||
stdin=None
|
||||
#NOTE: Not None, otherwise it reads stdin from terminal!
|
||||
stdin=subprocess.PIPE
|
||||
elif isinstance(input,str) or type(input)=='unicode':
|
||||
self.debug("INPUT > \n"+input.rstrip())
|
||||
stdin=subprocess.PIPE
|
||||
|
@ -47,6 +47,9 @@ class TestExecuteNode(unittest2.TestCase):
|
||||
with self.subTest("stdin input string"):
|
||||
self.assertEqual(node.run(["cat"], input="test"), ["test"])
|
||||
|
||||
#command that wants input, while we dont have input, shouldnt hang forever.
|
||||
with self.subTest("stdin process with input=None (shouldn't hang)"):
|
||||
self.assertEqual(node.run(["cat"]), [])
|
||||
|
||||
def test_basics_local(self):
|
||||
node=ExecuteNode(debug_output=True)
|
||||
|
@ -106,9 +106,17 @@ test_target1
|
||||
logger=Logger()
|
||||
description="[Source]"
|
||||
node=ZfsNode("test", logger, description=description)
|
||||
print(node.supported_send_options)
|
||||
# -D propably always supported
|
||||
self.assertIn("-D", node.supported_send_options)
|
||||
|
||||
|
||||
def test_supportedrecvoptions(self):
|
||||
logger=Logger()
|
||||
description="[Source]"
|
||||
#NOTE: this couldnt hang via ssh if we dont close filehandles properly. (which was a previous bug)
|
||||
node=ZfsNode("test", logger, description=description, ssh_to='localhost')
|
||||
self.assertIsInstance(node.supported_recv_options, list)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
x
Reference in New Issue
Block a user