def test_calculate_consensus(self): cluster = ClusterConsensus() sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'A']) self.assertRaises(ValueError, cluster._calculate_consensus, sequence_generator) sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'AG']) self.assertEqual(cluster._calculate_consensus(sequence_generator), 'AG') sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'TG']) self.assertEqual(cluster._calculate_consensus(sequence_generator), 'NG') sequence_generator = (FakeSequence(s) for s in ['AG', 'AT', 'TG']) self.assertEqual(cluster._calculate_consensus(sequence_generator), 'NN') sequence_generator = (FakeSequence(s) for s in ['AG', 'A-', 'AG']) self.assertEqual(cluster._calculate_consensus(sequence_generator), 'AN')
def test_write_consensus(self): cluster = ClusterConsensus() cluster.output_file = StringIO() cluster.cluster_name = 'cluster_1000' cluster._calculate_consensus = MagicMock(return_value='NNANTGUNCN') cluster.write_consensus() expected_results = """\ >cluster_1000 NNANTGUNCN """ cluster.output_file.seek(0) self.assertEqual(cluster.output_file.read(), expected_results)