|
a |
|
b/qiita_db/test/test_ontology.py |
|
|
1 |
# ----------------------------------------------------------------------------- |
|
|
2 |
# Copyright (c) 2014--, The Qiita Development Team. |
|
|
3 |
# |
|
|
4 |
# Distributed under the terms of the BSD 3-clause License. |
|
|
5 |
# |
|
|
6 |
# The full license is in the file LICENSE, distributed with this software. |
|
|
7 |
# ----------------------------------------------------------------------------- |
|
|
8 |
|
|
|
9 |
from unittest import TestCase, main |
|
|
10 |
|
|
|
11 |
from qiita_core.util import qiita_test_checker |
|
|
12 |
import qiita_db as qdb |
|
|
13 |
|
|
|
14 |
|
|
|
15 |
@qiita_test_checker() |
|
|
16 |
class TestOntology(TestCase): |
|
|
17 |
def setUp(self): |
|
|
18 |
self.ontology = qdb.ontology.Ontology(999999999) |
|
|
19 |
|
|
|
20 |
def _remove_term(self, term): |
|
|
21 |
sql = "DELETE FROM qiita.term WHERE ontology_id = %s AND term = %s" |
|
|
22 |
qdb.sql_connection.perform_as_transaction( |
|
|
23 |
sql, [self.ontology.id, term]) |
|
|
24 |
|
|
|
25 |
def testConvertToID(self): |
|
|
26 |
self.assertEqual(qdb.util.convert_to_id('ENA', 'ontology'), 999999999) |
|
|
27 |
|
|
|
28 |
def testConvertFromID(self): |
|
|
29 |
self.assertEqual( |
|
|
30 |
qdb.util.convert_from_id(999999999, 'ontology'), 'ENA') |
|
|
31 |
|
|
|
32 |
def testShortNameProperty(self): |
|
|
33 |
self.assertEqual(self.ontology.shortname, 'ENA') |
|
|
34 |
|
|
|
35 |
def testTerms(self): |
|
|
36 |
obs = self.ontology.terms |
|
|
37 |
self.assertEqual( |
|
|
38 |
obs, ['WGS', 'Metagenomics', 'AMPLICON', 'RNA-Seq', 'Other']) |
|
|
39 |
|
|
|
40 |
def test_user_defined_terms(self): |
|
|
41 |
obs = self.ontology.user_defined_terms |
|
|
42 |
self.assertEqual(obs, []) |
|
|
43 |
|
|
|
44 |
def test_term_type(self): |
|
|
45 |
obs = self.ontology.term_type('RNA-Seq') |
|
|
46 |
self.assertEqual('ontology', obs) |
|
|
47 |
|
|
|
48 |
obs = self.ontology.term_type('Sasquatch') |
|
|
49 |
self.assertEqual('not_ontology', obs) |
|
|
50 |
|
|
|
51 |
self.ontology.add_user_defined_term('Test Term') |
|
|
52 |
obs = self.ontology.term_type('Test Term') |
|
|
53 |
self.assertEqual('user_defined', obs) |
|
|
54 |
|
|
|
55 |
self._remove_term('Test Term') |
|
|
56 |
|
|
|
57 |
def test_add_user_defined_term(self): |
|
|
58 |
self.assertFalse('Test Term' in self.ontology.user_defined_terms) |
|
|
59 |
pre = len(self.ontology.user_defined_terms) |
|
|
60 |
self.ontology.add_user_defined_term('Test Term') |
|
|
61 |
post = len(self.ontology.user_defined_terms) |
|
|
62 |
self.assertTrue('Test Term' in self.ontology.user_defined_terms) |
|
|
63 |
self.assertEqual(post-pre, 1) |
|
|
64 |
|
|
|
65 |
# Clean up the previously added term to avoid test failures |
|
|
66 |
self._remove_term('Test Term') |
|
|
67 |
|
|
|
68 |
def testContains(self): |
|
|
69 |
self.assertTrue('Metagenomics' in self.ontology) |
|
|
70 |
self.assertFalse('NotATerm' in self.ontology) |
|
|
71 |
|
|
|
72 |
|
|
|
73 |
if __name__ == '__main__': |
|
|
74 |
main() |