コード例 #1
0
def test_commandnode_run__exception_on_error():
    cmd_mock = _build_cmd_mock(return_codes=(1, ))
    node = CommandNode(cmd_mock)
    with pytest.raises(CmdNodeError):
        node._run(None, "xTMPx")

    assert cmd_mock.mock_calls == [call.run("xTMPx"), call.join()]
コード例 #2
0
ファイル: paml.py プロジェクト: muslih14/paleomix
 def _run(self, config, temp):
     try:
         CommandNode._run(self, config, temp)
     except NodeError, error:
         if self._command.join() == [1, None]:
             with open(fileutils.reroot_path(temp, "template.stdout")) as handle:
                 lines = handle.readlines()
             if lines and ("Giving up." in lines[-1]):
                 error = NodeError("%s\n\n%s" % (error, lines[-1]))
         raise error
コード例 #3
0
ファイル: paml.py プロジェクト: jelber2/paleomix
 def _run(self, config, temp):
     try:
         CommandNode._run(self, config, temp)
     except NodeError, error:
         if self._command.join() == [1, None]:
             with open(fileutils.reroot_path(temp,
                                             "template.stdout")) as handle:
                 lines = handle.readlines()
             if lines and ("Giving up." in lines[-1]):
                 error = NodeError("%s\n\n%s" % (error, lines[-1]))
         raise error
コード例 #4
0
ファイル: commands.py プロジェクト: jelber2/paleomix
    def _run(self, config, temp):
        with gzip.open(self._in_vcf) as handle:
            with open(os.path.join(temp, "heterozygous_snps.bed"), "w") as bed:
                for line in handle:
                    if line.startswith("#"):
                        continue

                    fields = line.split("\t", 5)
                    if "," in fields[4]:
                        pos = int(fields[1])
                        bed.write("%s\t%i\t%i\n" % (fields[0], pos - 1, pos))

        CommandNode._run(self, config, temp)
コード例 #5
0
ファイル: mapdamage.py プロジェクト: jelber2/paleomix
 def _run(self, config, temp):
     try:
         CommandNode._run(self, config, temp)
     except NodeError, error:
         err_message = "DNA damage levels are too low"
         if self._command.join() == [1]:
             fpath = os.path.join(temp, "pipe_mapDamage.stdout")
             with open(fpath) as handle:
                 for line in handle:
                     if err_message in line:
                         line = line.strip().replace("Warning:", "ERROR:")
                         error = NodeError("%s\n\n%s" % (error, line))
                         break
         raise error
コード例 #6
0
ファイル: mapdamage.py プロジェクト: MikkelSchubert/paleomix
 def _run(self, config, temp):
     try:
         CommandNode._run(self, config, temp)
     except NodeError, error:
         err_message = "DNA damage levels are too low"
         if self._command.join() == [1]:
             fpath = os.path.join(temp, "pipe_mapDamage.stdout")
             with open(fpath) as handle:
                 for line in handle:
                     if err_message in line:
                         line = line.strip().replace("Warning:", "ERROR:")
                         error = NodeError("%s\n\n%s" % (error, line))
                         break
         raise error
コード例 #7
0
def test_commandnode_run__call_order():
    cmd_mock = _build_cmd_mock()
    node = CommandNode(cmd_mock)
    node._run(None, "xTMPx")

    assert cmd_mock.mock_calls == [call.run("xTMPx"), call.join()]
コード例 #8
0
ファイル: node_test.py プロジェクト: MikkelSchubert/paleomix
def test_commandnode_run__call_order():
    cmd_mock = _build_cmd_mock()
    cmd_mock.should_receive("run").with_args("xTMPx").ordered.once
    cmd_mock.should_receive("join").with_args().and_return((0,)).ordered.once
    node = CommandNode(cmd_mock)
    node._run(None, "xTMPx")