Source code for conkit.io.tests.test_a2m

"""Testing facility for conkit.io.a2m"""

__author__ = "Felix Simkovic"
__date__ = "30 Jul 2018"

import unittest

from conkit.io.a2m import A2mParser
from conkit.io.tests.helpers import ParserTestCase


[docs]class TestA2mParser(ParserTestCase):
[docs] def test_read_1(self): msa = """GSMFTPKPPQDSAVI--GYCVKQGAVMKNWKRRY--LDENTIGYF EVHK--ECKQSDIMMRD--FEIVTTSRTFYVQADSPEEMHSWIKA EVHKVQECK--DIMMRDNLFEI--TSRTFWKRRY--LDENTIGYF EVHKVQECK--DIMMRDNLFEI--TSRTF--RRY--LDENTIGYF """ f_name = self.tempfile(content=msa) with open(f_name, "r") as f_in: sequence_file = A2mParser().read(f_in) for i, sequence_entry in enumerate(sequence_file): if i == 0: self.assertEqual("seq_0", sequence_entry.id) self.assertEqual("GSMFTPKPPQDSAVI--GYCVKQGAVMKNWKRRY--LDENTIGYF", sequence_entry.seq) elif i == 1: self.assertEqual("seq_1", sequence_entry.id) self.assertEqual("EVHK--ECKQSDIMMRD--FEIVTTSRTFYVQADSPEEMHSWIKA", sequence_entry.seq) elif i == 2: self.assertEqual("seq_2", sequence_entry.id) self.assertEqual("EVHKVQECK--DIMMRDNLFEI--TSRTFWKRRY--LDENTIGYF", sequence_entry.seq) elif i == 3: self.assertEqual("seq_3", sequence_entry.id) self.assertEqual("EVHKVQECK--DIMMRDNLFEI--TSRTF--RRY--LDENTIGYF", sequence_entry.seq)
[docs] def test_read_2(self): msa = """>header1 GSMFTPKPPQDSAVI--GYCVKQGAVMKNWKRRY--LDENTIGYF >header2 EVHK--ECKQSDIMMRD--FEIVTTSRTFYVQADSPEEMHSWIKA >header3 EVHKVQECK--DIMMRDNLFEI--TSRTFWKRRY--LDENTIGYF >header4 EVHKVQECK--DIMMRDNLFEI--TSRTF--RRY--LDENTIGYF """ f_name = self.tempfile(content=msa) with open(f_name, "r") as f_in: with self.assertRaises(ValueError): A2mParser().read(f_in)
[docs] def test_write_1(self): msa = [ "GSMFTPKPPQDSAVI--GYCVKQGAVMKNWKRRY--LDENTIGYF", "EVHK--ECKQSDIMMRD--FEIVTTSRTFYVQADSPEEMHSWIKA", "EVHKVQECK--DIMMRDNLFEI--TSRTFWKRRY--LDENTIGYF", "EVHKVQECK--DIMMRDNLFEI--TSRTF--RRY--LDENTIGYF", ] f_name_in = self.tempfile(content='\n'.join(msa)) f_name_out = self.tempfile() with open(f_name_in, "r") as f_in, open(f_name_out, "w") as f_out: sequence_file = A2mParser().read(f_in) A2mParser().write(f_out, sequence_file) with open(f_name_out, "r") as f_in: output = f_in.read().splitlines() self.assertEqual(msa, output)
if __name__ == "__main__": unittest.main(verbosity=2)