aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/db
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/db')
-rw-r--r--tests/unit/db/test_phenotypes.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/unit/db/test_phenotypes.py b/tests/unit/db/test_phenotypes.py
new file mode 100644
index 0000000..8b810fe
--- /dev/null
+++ b/tests/unit/db/test_phenotypes.py
@@ -0,0 +1,41 @@
+"""Tests for db/phenotypes.py"""
+from unittest import TestCase
+from unittest import mock
+
+from gn3.db.phenotypes import Phenotype
+from gn3.db.phenotypes import update_phenotype
+
+
+class TestPhenotypes(TestCase):
+ """Test cases for fetching chromosomes"""
+ def test_update_phenotype_with_no_data(self):
+ """
+ Test that a phenotype is updated correctly if an empty Phenotype dataclass
+ is provided
+ """
+ db_mock = mock.MagicMock()
+ self.assertEqual(update_phenotype(
+ db_mock, data=Phenotype(), where=Phenotype()), None)
+
+ def test_update_phenotype_with_data(self):
+ """
+ Test that a phenotype is updated correctly if some
+ data is provided
+ """
+ db_mock = mock.MagicMock()
+ with db_mock.cursor() as cursor:
+ type(cursor).rowcount = 1
+ self.assertEqual(update_phenotype(
+ db_mock, data=Phenotype(
+ pre_pub_description="Test Pre Pub",
+ submitter="Rob",
+ post_pub_description="Test Post Pub"),
+ where=Phenotype(id_=1)), 1)
+ cursor.execute.assert_called_once_with(
+ "UPDATE Phenotype SET "
+ "Pre_publication_description = "
+ "'Test Pre Pub', "
+ "Post_publication_description = "
+ "'Test Post Pub', Submitter = 'Rob' "
+ "WHERE id = '1'"
+ )