class SequenceMetadataTestCase(unittest.TestCase):

    def setUp(self):
        self.case = SequenceMetadata("ABCD", "EFGH")

    def tearDown(self):
        del self.case

    def test_add_sequence(self):
        sequences = ["abcd", "efghi", "jklmno", "pqrstuv"]
        self.case.add_sequences(sequences)
        self.assertEqual(self.case.dict["sequences"], sequences)
        self.assertEqual(self.case.dict["contigs"], 4)
        self.assertEqual(self.case.dict["bp"], 22)
        self.assertIsNotNone(self.case.dict["checksum"])

    def test_generate_checksum(self):
        self.case.dict["sequences"] = ["abcd", "efghi", "jklmno", "pqrstuv"]
        self.case.generate_checksum()
        result = "44a66044834cbe55040089cabfc102d5"
        self.assertEqual(self.case.dict["checksum"],result)

    def test_generate_kwargs(self):
        with self.assertRaises(TypeError):
            self.case.generate_kwargs()

        sequences = ["abcd", "efghi", "jklmno", "pqrstuv"]
        self.case.add_sequences(sequences)
        self.case.dict["is_from"] = "CORE"
        results = {"name":"EFGH_seq",
                   "genome":"ABCD",
                   "sequences":sequences,
                   "bp":22,
                   "contigs":4,
                   "checksum":"44a66044834cbe55040089cabfc102d5",
                   "is_from":"CORE"}
        self.assertEqual(self.case.generate_kwargs(), results)
 def setUp(self):
     self.case = SequenceMetadata("ABCD", "EFGH")