99 Client ,
1010 DataCloudAccessLayerException ,
1111 DataCloudObjectType ,
12- _setup_spark ,
1312)
1413from datacustomcode .config import (
1514 AccessLayerObjectConfig ,
@@ -100,37 +99,41 @@ def test_singleton_pattern(self, reset_client, mock_spark):
10099 Client (reader = MagicMock (spec = BaseDataCloudReader ))
101100
102101 @patch ("datacustomcode.client.config" )
103- @patch ("datacustomcode.client._setup_spark" )
104102 def test_initialization_with_config (
105- self , mock_setup_spark , mock_config , reset_client , mock_spark
103+ self , mock_config , reset_client , mock_spark
106104 ):
107105 """Test client initialization using configuration."""
108- mock_setup_spark .return_value = mock_spark
106+ from datacustomcode .spark .default import DefaultSparkSessionProvider
107+ from unittest .mock import patch as mock_patch
109108
110- mock_reader = MagicMock (spec = BaseDataCloudReader )
111- mock_reader_config = MagicMock ()
112- mock_reader_config .to_object .return_value = mock_reader
113- mock_reader_config .force = False
109+ with mock_patch .object (DefaultSparkSessionProvider , "get_session" ) as mock_get_session :
110+ mock_get_session .return_value = mock_spark
114111
115- mock_writer = MagicMock (spec = BaseDataCloudWriter )
116- mock_writer_config = MagicMock ()
117- mock_writer_config .to_object .return_value = mock_writer
118- mock_writer_config .force = False
112+ mock_reader = MagicMock (spec = BaseDataCloudReader )
113+ mock_reader_config = MagicMock ()
114+ mock_reader_config .to_object .return_value = mock_reader
115+ mock_reader_config .force = False
119116
120- mock_spark_config = MagicMock (spec = SparkConfig )
117+ mock_writer = MagicMock (spec = BaseDataCloudWriter )
118+ mock_writer_config = MagicMock ()
119+ mock_writer_config .to_object .return_value = mock_writer
120+ mock_writer_config .force = False
121121
122- mock_config .reader_config = mock_reader_config
123- mock_config .writer_config = mock_writer_config
124- mock_config .spark_config = mock_spark_config
122+ mock_spark_config = MagicMock (spec = SparkConfig )
123+ mock_config .spark_provider_config = None
125124
126- client = Client ()
125+ mock_config .reader_config = mock_reader_config
126+ mock_config .writer_config = mock_writer_config
127+ mock_config .spark_config = mock_spark_config
127128
128- mock_setup_spark .assert_called_once_with (mock_spark_config )
129- mock_reader_config .to_object .assert_called_once_with (mock_spark )
130- mock_writer_config .to_object .assert_called_once_with (mock_spark )
129+ client = Client ()
131130
132- assert client ._reader is mock_reader
133- assert client ._writer is mock_writer
131+ mock_get_session .assert_called_once_with (mock_spark_config )
132+ mock_reader_config .to_object .assert_called_once_with (mock_spark )
133+ mock_writer_config .to_object .assert_called_once_with (mock_spark )
134+
135+ assert client ._reader is mock_reader
136+ assert client ._writer is mock_writer
134137
135138 def test_read_dlo (self , reset_client , mock_spark ):
136139 reader = MagicMock (spec = BaseDataCloudReader )
@@ -249,12 +252,12 @@ def test_read_pattern_flow(self, reset_client, mock_spark):
249252 assert "source_dmo" in client ._data_layer_history [DataCloudObjectType .DMO ]
250253
251254
252- # Add tests for _setup_spark function
253- class TestSetupSpark :
255+ # Add tests for DefaultSparkSessionProvider
256+ class TestDefaultSparkSessionProvider :
254257
255- @patch ("datacustomcode.client .SparkSession" )
256- def test_setup_spark_with_master (self , mock_spark_session ):
257- """Test _setup_spark with master specified"""
258+ @patch ("pyspark.sql .SparkSession" )
259+ def test_get_session_with_master (self , mock_spark_session ):
260+ """Test DefaultSparkSessionProvider with master specified"""
258261 mock_builder = MagicMock ()
259262 mock_master_builder = MagicMock ()
260263 mock_app_name_builder = MagicMock ()
@@ -273,7 +276,9 @@ def test_setup_spark_with_master(self, mock_spark_session):
273276 options = {"spark.executor.memory" : "1g" },
274277 )
275278
276- result = _setup_spark (spark_config )
279+ from datacustomcode .spark .default import DefaultSparkSessionProvider
280+ provider = DefaultSparkSessionProvider ()
281+ result = provider .get_session (spark_config )
277282
278283 mock_builder .master .assert_called_once_with ("local[1]" )
279284 mock_master_builder .appName .assert_called_once_with ("test-app" )
@@ -283,9 +288,9 @@ def test_setup_spark_with_master(self, mock_spark_session):
283288 mock_config_builder .getOrCreate .assert_called_once ()
284289 assert result is mock_session
285290
286- @patch ("datacustomcode.client .SparkSession" )
287- def test_setup_spark_with_multiple_options (self , mock_spark_session ):
288- """Test _setup_spark with multiple config options"""
291+ @patch ("pyspark.sql .SparkSession" )
292+ def test_get_session_with_multiple_options (self , mock_spark_session ):
293+ """Test DefaultSparkSessionProvider with multiple config options"""
289294 mock_builder = MagicMock ()
290295 mock_app_name_builder = MagicMock ()
291296 mock_config_builder1 = MagicMock ()
@@ -310,7 +315,9 @@ def test_setup_spark_with_multiple_options(self, mock_spark_session):
310315 },
311316 )
312317
313- result = _setup_spark (spark_config )
318+ from datacustomcode .spark .default import DefaultSparkSessionProvider
319+ provider = DefaultSparkSessionProvider ()
320+ result = provider .get_session (spark_config )
314321
315322 mock_builder .appName .assert_called_once_with ("test-app" )
316323
0 commit comments