def test_generate_hmm(alb_resources, hf, monkeypatch): tester = alb_resources.get_one("m p c") tester = Alb.generate_hmm(tester) for align in tester.alignments: align.hmm = re.search("(HMM +A +C +D.+//)", align.hmm, re.DOTALL).group(1) assert " COMPO 2.68250 3.88919 3.04853 2.78121 3.08118 3.13138 3.72607 2.65113 2.67024 2.34849 " \ "3.43272 3.05512 3.56890 3.09868 3.03335 2.74953 2.90269 2.58958 4.30351" in tester.alignments[0].hmm assert "COMPO 2.61975 3.93095 3.12640 2.80659 3.03969 2.94881 3.78599 2.73397 2.73613 2.36723 " \ "3.48106 3.11755 3.38828 3.15135 3.06078 2.68581 2.82442 2.59321 4.24683" in tester.alignments[1].hmm tester = alb_resources.get_one("m d c") tester = Alb.generate_hmm(tester, "hmmbuild") for align in tester.alignments: align.hmm = re.search("(HMM +A +C +G.+//)", align.hmm, re.DOTALL).group(1) assert """\ m->m m->i m->d i->m i->i d->m d->d COMPO 1.37149 1.47979 1.42806 1.27722 1.38629 1.38629 1.38629 1.38629 0.10249 4.35641 2.47000 1.46634 0.26236 0.00000 *""" in tester.alignments[ 0].hmm assert """\ m->m m->i m->d i->m i->i d->m d->d COMPO 1.26618 1.65166 1.51488 1.18245 0.93669 1.43354 1.84356 1.55419 0.72237 1.59420 1.16691 3.55520 0.02899 0.00000 *""" in tester.alignments[ 1].hmm with pytest.raises(SystemError) as err: Alb.generate_hmm(tester, "foo") assert "Could not find foo on your system." in str(err) monkeypatch.setattr(Alb, "Popen", MockPopen) with pytest.raises(SystemError) as err: Alb.generate_hmm(tester) assert "No output detected after running hmmbuild." in str(err)