Skip to content

Commit 3986ceb

Browse files
committed
mocking unit tests
1 parent 72f2e2d commit 3986ceb

File tree

1 file changed

+40
-28
lines changed

1 file changed

+40
-28
lines changed
Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python
22
from typing import Union
33

4-
# Copyright (c) 2024 Oracle and/or its affiliates.
4+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
55
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
66
import pytest
77
from ads.opctl.operator.lowcode.common.utils import (
@@ -13,23 +13,20 @@
1313
import pandas as pd
1414

1515
mock_secret = {
16-
'user_name': 'mock_user',
17-
'password': 'mock_password',
18-
'service_name': 'mock_service_name'
16+
"user_name": "mock_user",
17+
"password": "mock_password",
18+
"service_name": "mock_service_name",
1919
}
2020

2121
mock_connect_args = {
22-
'user': 'mock_user',
23-
'password': 'mock_password',
24-
'service_name': 'mock_service_name',
25-
'dsn': 'mock_dsn'
22+
"user": "mock_user",
23+
"password": "mock_password",
24+
"service_name": "mock_service_name",
25+
"dsn": "mock_dsn",
2626
}
2727

2828
# Mock data for testing
29-
mock_data = pd.DataFrame({
30-
'id': [1, 2, 3],
31-
'name': ['Alice', 'Bob', 'Charlie']
32-
})
29+
mock_data = pd.DataFrame({"id": [1, 2, 3], "name": ["Alice", "Bob", "Charlie"]})
3330

3431
mock_db_connection = MagicMock()
3532

@@ -42,7 +39,9 @@ def mock_oracledb_connect_failure(*args, **kwargs):
4239

4340

4441
def mock_oracledb_connect(**kwargs):
45-
assert kwargs == mock_connect_args, f"Expected connect_args {mock_connect_args}, but got {kwargs}"
42+
assert (
43+
kwargs == mock_connect_args
44+
), f"Expected connect_args {mock_connect_args}, but got {kwargs}"
4645
return mock_db_connection
4746

4847

@@ -67,37 +66,50 @@ def load_secret_fail(*args, **kwargs):
6766
class TestDataLoad(unittest.TestCase):
6867
def setUp(self):
6968
self.data_spec = Mock(spec=InputData)
70-
self.data_spec.connect_args = {
71-
'dsn': 'mock_dsn'
72-
}
73-
self.data_spec.vault_secret_id = 'mock_secret_id'
74-
self.data_spec.table_name = 'mock_table_name'
69+
self.data_spec.connect_args = {"dsn": "mock_dsn"}
70+
self.data_spec.vault_secret_id = "mock_secret_id"
71+
self.data_spec.table_name = "mock_table_name"
7572
self.data_spec.url = None
7673
self.data_spec.format = None
7774
self.data_spec.columns = None
7875
self.data_spec.limit = None
76+
self.data_spec.data = None
7977

8078
def testLoadSecretAndDBConnection(self):
81-
with patch('ads.secrets.ADBSecretKeeper.load_secret', side_effect=MockADBSecretKeeper.load_secret):
82-
with patch('oracledb.connect', side_effect=mock_oracledb_connect):
83-
with patch('pandas.read_sql', return_value=mock_data) as mock_read_sql:
79+
with patch(
80+
"ads.secrets.ADBSecretKeeper.load_secret",
81+
side_effect=MockADBSecretKeeper.load_secret,
82+
):
83+
with patch("oracledb.connect", side_effect=mock_oracledb_connect):
84+
with patch("pandas.read_sql", return_value=mock_data) as mock_read_sql:
8485
data = load_data(self.data_spec)
85-
mock_read_sql.assert_called_once_with(f"SELECT * FROM {self.data_spec.table_name}",
86-
mock_db_connection)
86+
mock_read_sql.assert_called_once_with(
87+
f"SELECT * FROM {self.data_spec.table_name}", mock_db_connection
88+
)
8789
pd.testing.assert_frame_equal(data, mock_data)
8890

8991
def testLoadVaultFailure(self):
90-
with patch('ads.secrets.ADBSecretKeeper.load_secret', side_effect=MockADBSecretKeeper.load_secret_fail):
92+
with patch(
93+
"ads.secrets.ADBSecretKeeper.load_secret",
94+
side_effect=MockADBSecretKeeper.load_secret_fail,
95+
):
9196
with pytest.raises(Exception) as e:
9297
load_data(self.data_spec)
9398

9499
expected_msg = f"Could not retrieve database credentials from vault {self.data_spec.vault_secret_id}: {load_secret_err_msg}"
95-
assert str(e.value) == expected_msg, f"Expected exception message '{expected_msg}', but got '{str(e)}'"
100+
assert (
101+
str(e.value) == expected_msg
102+
), f"Expected exception message '{expected_msg}', but got '{str(e)}'"
96103

97104
def testDBConnectionFailure(self):
98-
with patch('ads.secrets.ADBSecretKeeper.load_secret', side_effect=MockADBSecretKeeper.load_secret):
99-
with patch('oracledb.connect', side_effect=mock_oracledb_connect_failure):
105+
with patch(
106+
"ads.secrets.ADBSecretKeeper.load_secret",
107+
side_effect=MockADBSecretKeeper.load_secret,
108+
):
109+
with patch("oracledb.connect", side_effect=mock_oracledb_connect_failure):
100110
with pytest.raises(Exception) as e:
101111
load_data(self.data_spec)
102112

103-
assert str(e.value) == db_connect_err_msg , f"Expected exception message '{db_connect_err_msg }', but got '{str(e)}'"
113+
assert (
114+
str(e.value) == db_connect_err_msg
115+
), f"Expected exception message '{db_connect_err_msg }', but got '{str(e)}'"

0 commit comments

Comments
 (0)