aboutsummaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-04-06 12:31:05 +0300
committerFrederick Muriuki Muriithi2023-04-06 12:31:05 +0300
commit17abad9300e4a96a14f94da486ef8307f7d27e06 (patch)
tree38fe3bfd36be9a821adfc67b83fbbd587ceb8b5e /tests/unit
parent3d873435f0d464864d4d691d6be4db40931fac05 (diff)
downloadgenenetwork3-17abad9300e4a96a14f94da486ef8307f7d27e06.tar.gz
Remove deprecated `gn3.db_utils.database_connector` function
Remove the deprecated function and fix a myriad of bugs that arise from removing the function. Issue: https://issues.genenetwork.org/issues/bugfix_coupling_current_app_and_db_utils
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/test_db_utils.py63
1 files changed, 21 insertions, 42 deletions
diff --git a/tests/unit/test_db_utils.py b/tests/unit/test_db_utils.py
index a319692..0211107 100644
--- a/tests/unit/test_db_utils.py
+++ b/tests/unit/test_db_utils.py
@@ -1,49 +1,28 @@
"""module contains test for db_utils"""
-
-from unittest import TestCase
from unittest import mock
-from types import SimpleNamespace
import pytest
import gn3
-from gn3.db_utils import database_connector
-from gn3.db_utils import parse_db_url
-
-@pytest.fixture(scope="class")
-def setup_app(request, fxtr_app):
- """Setup the fixtures for the class."""
- request.cls.app = fxtr_app
-
-class TestDatabase(TestCase):
- """class contains testd for db connection functions"""
-
- @pytest.mark.unit_test
- @mock.patch("gn3.db_utils.mdb")
- @mock.patch("gn3.db_utils.parse_db_url")
- def test_database_connector(self, mock_db_parser, mock_sql):
- """test for creating database connection"""
- mock_db_parser.return_value = ("localhost", "guest", "4321", "users", None)
- callable_cursor = lambda: SimpleNamespace(execute=3)
- cursor_object = SimpleNamespace(cursor=callable_cursor)
- mock_sql.connect.return_value = cursor_object
- mock_sql.close.return_value = None
- results = database_connector()
-
+from gn3.db_utils import parse_db_url, database_connection
+
+@pytest.mark.unit_test
+@mock.patch("gn3.db_utils.mdb")
+@mock.patch("gn3.db_utils.parse_db_url")
+def test_database_connection(mock_db_parser, mock_sql):
+ """test for creating database connection"""
+ print(f"MOCK SQL: {mock_sql}")
+ print(f"MOCK DB PARSER: {mock_db_parser}")
+ mock_db_parser.return_value = ("localhost", "guest", "4321", "users", None)
+
+ with database_connection("mysql://guest:4321@localhost/users") as conn:
mock_sql.connect.assert_called_with(
- "localhost", "guest", "4321", "users", port=3306)
- self.assertIsInstance(
- results, SimpleNamespace, "database not created successfully")
-
- @pytest.mark.unit_test
- @pytest.mark.usefixtures("setup_app")
- def test_parse_db_url(self):
- """test for parsing db_uri env variable"""
- print(self.__dict__)
- with self.app.app_context(), mock.patch.dict(# pylint: disable=[no-member]
- gn3.db_utils.current_app.config,
- {"SQL_URI": "mysql://username:4321@localhost/test"},
- clear=True):
- results = parse_db_url()
- expected_results = ("localhost", "username", "4321", "test", None)
- self.assertEqual(results, expected_results)
+ db="users", user="guest", passwd="4321", host="localhost",
+ port=3306)
+
+@pytest.mark.unit_test
+def test_parse_db_url():
+ """test for parsing db_uri env variable"""
+ results = parse_db_url("mysql://username:4321@localhost/test")
+ expected_results = ("localhost", "username", "4321", "test", None)
+ assert results == expected_results