source: orange-bioinformatics/orangecontrib/bio/obiKEGG/tests/test_databases.py @ 1873:0810c5708cc5

Revision 1873:0810c5708cc5, 2.7 KB checked in by Ales Erjavec <ales.erjavec@…>, 7 months ago (diff)

Moved '_bioinformatics' into orangecontrib namespace.

Line 
1import unittest
2
3from .. import databases
4from .. import pathway
5
6
7class TestGenome(unittest.TestCase):
8    def test_genome(self):
9        genome = databases.Genome()
10        entry_keys = genome.keys()
11
12        for key in entry_keys[:3] + entry_keys[-3:]:
13            self.assertTrue(key in genome)
14            self.assertTrue(key in genome)
15            entry = genome[key]
16            self.assertEqual(entry.entry_key, key)
17            self.assertIsInstance(entry, genome.ENTRY_TYPE)
18            # Should we allow fields to be unicode?
19            self.assertIsInstance(entry.name, str)
20            self.assertIsInstance(entry.taxid, str)
21
22        self.assertTrue(genome.search("homo sapiens")[0] == "hsa")
23        entry = genome['hsa']
24        self.assertEqual(entry.taxid, "9606")
25
26
27class TestGenes(unittest.TestCase):
28    def _tester(self, org):
29        genes = databases.Genes(org)
30        keys = genes.keys()[:3] + genes.keys()[-3:]
31        all_entries = []
32        for gene in keys:
33            self.assertTrue(gene in genes)
34            entry = genes[gene]
35            self.assertEqual(entry.entry_key,
36                             genes.get(gene).entry_key,
37                             "__getitem__ and get return different result")
38
39            self.assertTrue(gene.endswith(entry.entry_key))
40
41            self.assertIsInstance(entry, genes.ENTRY_TYPE)
42            self.assertIsInstance(entry.aliases(), list)
43
44            self.assertTrue(all(isinstance(a, basestring)
45                                for a in entry.aliases()))
46            all_entries.append(entry)
47
48        self.assertSequenceEqual(
49            [(e.name, e.entry_key) for e in all_entries],
50            [(e.name, e.entry_key) for e in genes.batch_get(keys)],
51            "batch_get returns different result")
52
53    def test_hsa(self):
54        self._tester("hsa")
55
56    def test_sce(self):
57        self._tester("sce")
58
59    def test_ddi(self):
60        self._tester("ddi")
61
62
63class TestPathways(unittest.TestCase):
64    def _tester(self, path_id):
65        pathways = databases.Pathway()
66
67        entry = pathways[path_id]
68        self.assertTrue(path_id.endswith(entry.entry_key))
69        self.assertIsInstance(entry, pathways.ENTRY_TYPE)
70
71        genes = entry.gene or []
72
73        path = pathway.Pathway(path_id)
74        self.assertEqual(sorted(genes), sorted(path.genes()))
75
76    def test(self):
77        self._tester("path:map00627")
78
79
80class TestUtils(unittest.TestCase):
81    def test_batch_iter(self):
82        iter = range(25)
83        expected = [range(10),
84                    range(10, 20),
85                    range(20, 25)]
86        for exp, batch in zip(expected,
87                              databases.batch_iter(iter, 10)):
88            self.assertEqual(exp, batch)
Note: See TracBrowser for help on using the repository browser.