11#!/usr/bin/env python
22from 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/
66import pytest
77from ads .opctl .operator .lowcode .common .utils import (
1313import pandas as pd
1414
1515mock_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
2121mock_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
3431mock_db_connection = MagicMock ()
3532
@@ -42,7 +39,9 @@ def mock_oracledb_connect_failure(*args, **kwargs):
4239
4340
4441def 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):
6766class 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