mirror of
https://github.com/psy0rz/zfs_autobackup.git
synced 2025-06-09 01:52:07 +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
|
#determine stdin
|
||||||
if input==None:
|
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':
|
elif isinstance(input,str) or type(input)=='unicode':
|
||||||
self.debug("INPUT > \n"+input.rstrip())
|
self.debug("INPUT > \n"+input.rstrip())
|
||||||
stdin=subprocess.PIPE
|
stdin=subprocess.PIPE
|
||||||
|
@ -47,6 +47,9 @@ class TestExecuteNode(unittest2.TestCase):
|
|||||||
with self.subTest("stdin input string"):
|
with self.subTest("stdin input string"):
|
||||||
self.assertEqual(node.run(["cat"], input="test"), ["test"])
|
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):
|
def test_basics_local(self):
|
||||||
node=ExecuteNode(debug_output=True)
|
node=ExecuteNode(debug_output=True)
|
||||||
|
@ -106,9 +106,17 @@ test_target1
|
|||||||
logger=Logger()
|
logger=Logger()
|
||||||
description="[Source]"
|
description="[Source]"
|
||||||
node=ZfsNode("test", logger, description=description)
|
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__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user