update to 1.0.2
This commit is contained in:
68
source/tests/test_mysql_connector.py
Normal file
68
source/tests/test_mysql_connector.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import sys
|
||||
from os import environ
|
||||
from pathlib import Path
|
||||
from unittest import TestCase
|
||||
|
||||
from tests.mock_packages.mysql.connection import Connection
|
||||
from tests.mock_packages.mysql.cursor import Cursor
|
||||
|
||||
environ["MYSQL_DB_USERNAME"] = ""
|
||||
environ["MYSQL_DB_HOST_IP"] = ""
|
||||
environ["MYSQL_DB_PASSWORD"] = ""
|
||||
environ["MYSQL_DB_DATABASE"] = ""
|
||||
current: Path = Path().resolve()
|
||||
paths_to_extend = [current / "tests" / "mock_packages", current / "src"]
|
||||
for path in paths_to_extend:
|
||||
path_as_string = str(path)
|
||||
if path_as_string not in sys.path:
|
||||
sys.path.append(path_as_string)
|
||||
|
||||
from database import read_and_save
|
||||
|
||||
|
||||
class MysqlConnectionLeakageTests(TestCase):
|
||||
"""Tests to see if the class leaves any connections open after its processes."""
|
||||
|
||||
def _open_connections(self):
|
||||
return Connection(consider_open=False).open_connections
|
||||
|
||||
def setUp(self) -> None:
|
||||
"""Set up the data after each test case."""
|
||||
|
||||
Cursor(raise_err=False)._raise_error = False
|
||||
Cursor(raise_err=False)._raise_error_in_init = False
|
||||
Connection().open_connections = 0
|
||||
|
||||
def test_bulk_transfer_without_error(self):
|
||||
"""Test if `bulk_transfer` leaves any hanging connections in normal operations."""
|
||||
|
||||
for _ in range(3):
|
||||
read_and_save.bulk_save()
|
||||
|
||||
self.assertEqual(self._open_connections(), 0)
|
||||
|
||||
def test_bulk_transfer_with_error_in_cursor_init(self):
|
||||
"""Test if `bulk_transfer` leaves any hanging connections with errors when instantiating
|
||||
cursor."""
|
||||
|
||||
Cursor()._raise_error_in_init = True
|
||||
for _ in range(3):
|
||||
try:
|
||||
read_and_save.bulk_save()
|
||||
except:
|
||||
pass
|
||||
|
||||
self.assertEqual(self._open_connections(), 0)
|
||||
|
||||
def test_bulk_transfer_with_error_in_cursor(self):
|
||||
"""Test if `bulk_transfer` leaves any hanging connections with errors when executing
|
||||
a query in the cursor."""
|
||||
|
||||
Cursor()._raise_error = True
|
||||
for _ in range(3):
|
||||
try:
|
||||
read_and_save.bulk_save()
|
||||
except:
|
||||
pass
|
||||
|
||||
self.assertEqual(self._open_connections(), 0)
|
||||
Reference in New Issue
Block a user