def test_pformat__atomiccmd__simple_with_stdout_pipe(): cmd = AtomicCmd(("echo", "!"), OUT_STDOUT=AtomicCmd.PIPE) assert_equal(pformat(cmd), ("<Command = ['echo', '!']\n" " STDOUT = <PIPE>\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd), ))
def test_pformat__atomiccmd__simple_with_temp_stdout(): cmd = AtomicCmd(("echo", "Oil. Oil."), TEMP_OUT_STDOUT="dm") assert_equal(pformat(cmd), ("<Command = ['echo', 'Oil. Oil.']\n" " STDOUT* = '${TEMP_DIR}/dm'\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd), ))
def test_pformat__atomiccmd__simple_with_temp_stdin__set_cwd(): cmd = AtomicCmd("gzip", TEMP_IN_STDIN = "stabstabstab", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['gzip']\n" " STDIN* = 'stabstabstab'\n" " STDOUT* = 'pipe_gzip_%i.stdout'\n" " STDERR* = 'pipe_gzip_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_outfile(): cmd = AtomicCmd(("touch", "%(TEMP_OUT_RC)s"), TEMP_OUT_RC="bashrc") assert_equal(pformat(cmd), ("<Command = ['touch', '${TEMP_DIR}/bashrc']\n" " STDOUT* = '${TEMP_DIR}/pipe_touch_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_touch_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_infile(): cmd = AtomicCmd(("cat", "%(TEMP_IN_FILE)s"), TEMP_IN_FILE="infile.txt") assert_equal(pformat(cmd), ("<Command = ['cat', '${TEMP_DIR}/infile.txt']\n" " STDOUT* = '${TEMP_DIR}/pipe_cat_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_cat_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_infile(): cmd = AtomicCmd(("cat", "%(IN_SOMETHING)s"), IN_SOMETHING="/etc/fstab") assert_equal(pformat(cmd), ("<Command = ['cat', '/etc/fstab']\n" " STDOUT* = '${TEMP_DIR}/pipe_cat_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_cat_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__simple(): cmd = AtomicCmd(("touch", "something")) assert_equal(pformat(cmd), ("<Command = ['touch', 'something']\n" " STDOUT* = '${TEMP_DIR}/pipe_touch_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_touch_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_stdin__cmd(): cmd_1 = AtomicCmd("gzip", OUT_STDOUT = AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN = cmd_1) assert_equal(pformat(cmd_2), ("<Command = ['gzip']\n" " STDIN = <PIPE>\n" " STDOUT* = '${TEMP_DIR}/pipe_gzip_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_gzip_%i.stderr'>") % (id(cmd_2), id(cmd_2)))
def test_pformat__atomiccmd__simple_with_stdout(): cmd = AtomicCmd(("echo", "Water. Water."), OUT_STDOUT="/dev/ls") assert_equal(pformat(cmd), ("<Command = ['echo', 'Water. Water.']\n" " STDOUT = '${TEMP_DIR}/ls'\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd), ))
def test_pformat__atomiccmd__simple_with_stdout__set_cwd(): cmd = AtomicCmd(("echo", "*pant*. *pant*."), OUT_STDOUT="/dev/barf", set_cwd=True) assert_equal(pformat(cmd), ("<Command = ['echo', '*pant*. *pant*.']\n" " STDOUT = 'barf'\n" " STDERR* = 'pipe_echo_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), ))
def test_pformat__atomiccmd__simple_with_temp_stdin__set_cwd(): cmd = AtomicCmd("gzip", TEMP_IN_STDIN="stabstabstab", set_cwd=True) assert_equal(pformat(cmd), ("<Command = ['gzip']\n" " STDIN* = 'stabstabstab'\n" " STDOUT* = 'pipe_gzip_%i.stdout'\n" " STDERR* = 'pipe_gzip_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_stdin(): cmd = AtomicCmd("gzip", IN_STDIN="/etc/fstab") assert_equal(pformat(cmd), ("<Command = ['gzip']\n" " STDIN = '/etc/fstab'\n" " STDOUT* = '${TEMP_DIR}/pipe_gzip_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_gzip_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_stdout__set_cwd(): cmd = AtomicCmd(("echo", "Room service. Room service."), TEMP_OUT_STDOUT="pv", set_cwd=True) assert_equal(pformat(cmd), ("<Command = ['echo', 'Room service. Room service.']\n" " STDOUT* = 'pv'\n" " STDERR* = 'pipe_echo_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), ))
def test_pformat__atomiccmd__simple_with_stdin__cmd(): cmd_1 = AtomicCmd("gzip", OUT_STDOUT=AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN=cmd_1) assert_equal(pformat(cmd_2), ("<Command = ['gzip']\n" " STDIN = <PIPE>\n" " STDOUT* = '${TEMP_DIR}/pipe_gzip_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_gzip_%i.stderr'>") % (id(cmd_2), id(cmd_2)))
def test_pformat__atomiccmd__simple_with_outfile__set_cwd(): cmd = AtomicCmd(("touch", "%(OUT_RC)s"), OUT_RC="/etc/bashrc", set_cwd=True) assert_equal(pformat(cmd), ("<Command = ['touch', 'bashrc']\n" " STDOUT* = 'pipe_touch_%i.stdout'\n" " STDERR* = 'pipe_touch_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_infile__set_cwd(): cmd = AtomicCmd(("zcat", "%(TEMP_IN_FILE)s"), TEMP_IN_FILE="infile.gz", set_cwd=True) assert_equal(pformat(cmd), ("<Command = ['zcat', 'infile.gz']\n" " STDOUT* = 'pipe_zcat_%i.stdout'\n" " STDERR* = 'pipe_zcat_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__simple__done__set_cwd(temp_folder): cmd = AtomicCmd("true", set_cwd = True) cmd.run(temp_folder) assert_equal(cmd.join(), [0]) assert_equal(pformat(cmd), ("<Command = ['true']\n" " Status = Exited with return-code 0\n" " STDOUT* = 'pipe_true_{id}.stdout'\n" " STDERR* = 'pipe_true_{id}.stderr'\n" " CWD = '{temp_dir}'>").format(id = id(cmd), temp_dir = temp_folder))
def test_pformat__simple__done__set_cwd(temp_folder): cmd = AtomicCmd("true", set_cwd=True) cmd.run(temp_folder) assert_equal(cmd.join(), [0]) assert_equal(pformat(cmd), ("<Command = ['true']\n" " Status = Exited with return-code 0\n" " STDOUT* = 'pipe_true_{id}.stdout'\n" " STDERR* = 'pipe_true_{id}.stderr'\n" " CWD = '{temp_dir}'>").format(id=id(cmd), temp_dir=temp_folder))
def test_pformat__simple__running__set_cwd(temp_folder): cmd = AtomicCmd(("sleep", "10"), set_cwd = True) cmd.run(temp_folder) assert_equal(pformat(cmd), ("<Command = ['sleep', '10']\n" " Status = Running ...\n" " STDOUT* = 'pipe_sleep_{id}.stdout'\n" " STDERR* = 'pipe_sleep_{id}.stderr'\n" " CWD = '{temp_dir}'>").format(id = id(cmd), temp_dir = temp_folder)) cmd.terminate() cmd.join()
def test_pformat__simple__done__before_join(temp_folder): cmd = AtomicCmd("true") cmd.run(temp_folder) cmd._proc.wait() # pylint: disable=W0212 assert_equal(pformat(cmd), ("<Command = ['true']\n" " Status = Exited with return-code 0\n" " STDOUT* = '{temp_dir}/pipe_true_{id}.stdout'\n" " STDERR* = '{temp_dir}/pipe_true_{id}.stderr'\n" " CWD = '{cwd}'>").format(id = id(cmd), cwd = os.getcwd(), temp_dir = temp_folder)) assert_equal(cmd.join(), [0])
def test_pformat__simple__running__set_cwd(temp_folder): cmd = AtomicCmd(("sleep", "10"), set_cwd=True) cmd.run(temp_folder) assert_equal(pformat(cmd), ("<Command = ['sleep', '10']\n" " Status = Running ...\n" " STDOUT* = 'pipe_sleep_{id}.stdout'\n" " STDERR* = 'pipe_sleep_{id}.stderr'\n" " CWD = '{temp_dir}'>").format(id=id(cmd), temp_dir=temp_folder)) cmd.terminate() cmd.join()
def test_pformat__simple__killed(temp_folder): cmd = AtomicCmd(("sleep", "10")) cmd.run(temp_folder) cmd.terminate() assert_equal(cmd.join(), ["SIGTERM"]) assert_equal(pformat(cmd), ("<Command = ['sleep', '10']\n" " Status = Terminated with signal SIGTERM\n" " STDOUT* = '{temp_dir}/pipe_sleep_{id}.stdout'\n" " STDERR* = '{temp_dir}/pipe_sleep_{id}.stderr'\n" " CWD = '{cwd}'>").format(id = id(cmd), temp_dir = temp_folder, cwd = os.getcwd()))
def test_pformat__simple__killed(temp_folder): cmd = AtomicCmd(("sleep", "10")) cmd.run(temp_folder) cmd.terminate() assert_equal(cmd.join(), ["SIGTERM"]) assert_equal(pformat(cmd), ("<Command = ['sleep', '10']\n" " Status = Terminated with signal SIGTERM\n" " STDOUT* = '{temp_dir}/pipe_sleep_{id}.stdout'\n" " STDERR* = '{temp_dir}/pipe_sleep_{id}.stderr'\n" " CWD = '{cwd}'>").format(id=id(cmd), temp_dir=temp_folder, cwd=os.getcwd()))
def test_pformat__simple__done__before_join(temp_folder): cmd = AtomicCmd("true") cmd.run(temp_folder) cmd._proc.wait() # pylint: disable=W0212 assert_equal(pformat(cmd), ("<Command = ['true']\n" " Status = Exited with return-code 0\n" " STDOUT* = '{temp_dir}/pipe_true_{id}.stdout'\n" " STDERR* = '{temp_dir}/pipe_true_{id}.stderr'\n" " CWD = '{cwd}'>").format(id=id(cmd), cwd=os.getcwd(), temp_dir=temp_folder)) assert_equal(cmd.join(), [0])
def _do_test_pformat__sets__simple(cls, description): cmd_1 = AtomicCmd(("echo", "foo"), OUT_STDOUT = AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN = cmd_1) cmd = cls((cmd_1, cmd_2)) assert_equal(pformat(cmd), ("<{description}:\n" " - <00> Command = ['echo', 'foo']\n" " STDOUT = <01>\n" " STDERR* = '${{TEMP_DIR}}/pipe_echo_{cmd_1_id}.stderr'\n" " - <01> Command = ['gzip']\n" " STDIN = <00>\n" " STDOUT* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stderr'>") \ .format(description = description, cmd_1_id = id(cmd_1), cmd_2_id = id(cmd_2)))
def _do_test_pformat__sets__simple(cls, description): cmd_1 = AtomicCmd(("echo", "foo"), OUT_STDOUT=AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN=cmd_1) cmd = cls((cmd_1, cmd_2)) assert_equal(pformat(cmd), ("<{description}:\n" " - <00> Command = ['echo', 'foo']\n" " STDOUT = <01>\n" " STDERR* = '${{TEMP_DIR}}/pipe_echo_{cmd_1_id}.stderr'\n" " - <01> Command = ['gzip']\n" " STDIN = <00>\n" " STDOUT* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stderr'>") \ .format(description = description, cmd_1_id = id(cmd_1), cmd_2_id = id(cmd_2)))
def test_pformat__sets__nested(): cmd_1 = AtomicCmd(("echo", "foo"), OUT_STDOUT = AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN = cmd_1) cmd_3 = AtomicCmd("sha1sum") set_1 = ParallelCmds((cmd_1, cmd_2)) set_2 = SequentialCmds((set_1, cmd_3)) assert_equal(pformat(set_2), ("<Sequential commands:\n" " - Parallel commands:\n" " - <00> Command = ['echo', 'foo']\n" " STDOUT = <01>\n" " STDERR* = '${{TEMP_DIR}}/pipe_echo_{cmd_1_id}.stderr'\n" " - <01> Command = ['gzip']\n" " STDIN = <00>\n" " STDOUT* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stderr'\n" " - <02> Command = ['sha1sum']\n" " STDOUT* = '${{TEMP_DIR}}/pipe_sha1sum_{cmd_3_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_sha1sum_{cmd_3_id}.stderr'>") \ .format(cmd_1_id = id(cmd_1), cmd_2_id = id(cmd_2), cmd_3_id = id(cmd_3)))
def test_pformat__sets__nested(): cmd_1 = AtomicCmd(("echo", "foo"), OUT_STDOUT=AtomicCmd.PIPE) cmd_2 = AtomicCmd("gzip", IN_STDIN=cmd_1) cmd_3 = AtomicCmd("sha1sum") set_1 = ParallelCmds((cmd_1, cmd_2)) set_2 = SequentialCmds((set_1, cmd_3)) assert_equal(pformat(set_2), ("<Sequential commands:\n" " - Parallel commands:\n" " - <00> Command = ['echo', 'foo']\n" " STDOUT = <01>\n" " STDERR* = '${{TEMP_DIR}}/pipe_echo_{cmd_1_id}.stderr'\n" " - <01> Command = ['gzip']\n" " STDIN = <00>\n" " STDOUT* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_gzip_{cmd_2_id}.stderr'\n" " - <02> Command = ['sha1sum']\n" " STDOUT* = '${{TEMP_DIR}}/pipe_sha1sum_{cmd_3_id}.stdout'\n" " STDERR* = '${{TEMP_DIR}}/pipe_sha1sum_{cmd_3_id}.stderr'>") \ .format(cmd_1_id = id(cmd_1), cmd_2_id = id(cmd_2), cmd_3_id = id(cmd_3)))
def _do_test_pformat__bad_input(value): pformat(value)
def test_pformat__atomiccmd__simple_with_stdout_pipe(): cmd = AtomicCmd(("echo", "!"), OUT_STDOUT = AtomicCmd.PIPE) assert_equal(pformat(cmd), ("<Command = ['echo', '!']\n" " STDOUT = <PIPE>\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd),))
def test_pformat__atomiccmd__simple_with_temp_stdout__set_cwd(): cmd = AtomicCmd(("echo", "Room service. Room service."), TEMP_OUT_STDOUT = "pv", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['echo', 'Room service. Room service.']\n" " STDOUT* = 'pv'\n" " STDERR* = 'pipe_echo_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd),))
def test_pformat__atomiccmd__simple_with_temp_infile(): cmd = AtomicCmd(("cat", "%(TEMP_IN_FILE)s"), TEMP_IN_FILE = "infile.txt") assert_equal(pformat(cmd), ("<Command = ['cat', '${TEMP_DIR}/infile.txt']\n" " STDOUT* = '${TEMP_DIR}/pipe_cat_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_cat_%i.stderr'>") % (id(cmd), id(cmd)))
def __str__(self): return atomicpp.pformat(self)
def test_pformat__atomiccmd__simple_with_stdout(): cmd = AtomicCmd(("echo", "Water. Water."), OUT_STDOUT = "/dev/ls") assert_equal(pformat(cmd), ("<Command = ['echo', 'Water. Water.']\n" " STDOUT = '${TEMP_DIR}/ls'\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd),))
def test_pformat__atomiccmd__simple_with_stdin(): cmd = AtomicCmd("gzip", IN_STDIN = "/etc/fstab") assert_equal(pformat(cmd), ("<Command = ['gzip']\n" " STDIN = '/etc/fstab'\n" " STDOUT* = '${TEMP_DIR}/pipe_gzip_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_gzip_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_outfile__set_cwd(): cmd = AtomicCmd(("touch", "%(TEMP_OUT_RC)s"), TEMP_OUT_RC = "bashrc", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['touch', 'bashrc']\n" " STDOUT* = 'pipe_touch_%i.stdout'\n" " STDERR* = 'pipe_touch_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_outfile(): cmd = AtomicCmd(("touch", "%(OUT_RC)s"), OUT_RC = "/etc/bashrc") assert_equal(pformat(cmd), ("<Command = ['touch', '${TEMP_DIR}/bashrc']\n" " STDOUT* = '${TEMP_DIR}/pipe_touch_%i.stdout'\n" " STDERR* = '${TEMP_DIR}/pipe_touch_%i.stderr'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_temp_infile__set_cwd(): cmd = AtomicCmd(("zcat", "%(TEMP_IN_FILE)s"), TEMP_IN_FILE = "infile.gz", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['zcat', 'infile.gz']\n" " STDOUT* = 'pipe_zcat_%i.stdout'\n" " STDERR* = 'pipe_zcat_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))
def test_pformat__atomiccmd__simple_with_stdout__set_cwd(): cmd = AtomicCmd(("echo", "*pant*. *pant*."), OUT_STDOUT = "/dev/barf", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['echo', '*pant*. *pant*.']\n" " STDOUT = 'barf'\n" " STDERR* = 'pipe_echo_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd),))
def test_pformat__atomiccmd__simple_with_temp_stdout(): cmd = AtomicCmd(("echo", "Oil. Oil."), TEMP_OUT_STDOUT = "dm") assert_equal(pformat(cmd), ("<Command = ['echo', 'Oil. Oil.']\n" " STDOUT* = '${TEMP_DIR}/dm'\n" " STDERR* = '${TEMP_DIR}/pipe_echo_%i.stderr'>") % (id(cmd),))
def test_pformat__atomiccmd__simple_with_infile__set_cwd(): cmd = AtomicCmd(("cat", "%(IN_SOMETHING)s"), IN_SOMETHING = "/etc/fstab", set_cwd = True) assert_equal(pformat(cmd), ("<Command = ['cat', '/etc/fstab']\n" " STDOUT* = 'pipe_cat_%i.stdout'\n" " STDERR* = 'pipe_cat_%i.stderr'\n" " CWD = '${TEMP_DIR}'>") % (id(cmd), id(cmd)))