From ab8352eb56916db6eb0fa6a47810b64b44c4fedd Mon Sep 17 00:00:00 2001 From: R-Palazzo Date: Fri, 11 Aug 2023 16:56:04 +0100 Subject: [PATCH] use load_data_from_csv --- sdv/metadata/multi_table.py | 5 +++-- tests/unit/metadata/test_multi_table.py | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sdv/metadata/multi_table.py b/sdv/metadata/multi_table.py index 446ed9a27..28a066872 100644 --- a/sdv/metadata/multi_table.py +++ b/sdv/metadata/multi_table.py @@ -15,7 +15,7 @@ from sdv.metadata.utils import read_json, validate_file_does_not_exist from sdv.metadata.visualization import ( create_columns_node, create_summarized_columns_node, visualize_graph) -from sdv.utils import cast_to_iterable +from sdv.utils import cast_to_iterable, load_data_from_csv LOGGER = logging.getLogger(__name__) @@ -371,7 +371,8 @@ def detect_table_from_csv(self, table_name, filepath): """ self._validate_table_not_detected(table_name) table = SingleTableMetadata() - table.detect_from_csv(filepath) + data = load_data_from_csv(filepath) + table._detect_columns(data) self.tables[table_name] = table self._log_detected_table(table) diff --git a/tests/unit/metadata/test_multi_table.py b/tests/unit/metadata/test_multi_table.py index 04fa418c9..8c60b46ab 100644 --- a/tests/unit/metadata/test_multi_table.py +++ b/tests/unit/metadata/test_multi_table.py @@ -1589,7 +1589,8 @@ def test_update_column_table_does_not_exist(self): @patch('sdv.metadata.multi_table.LOGGER') @patch('sdv.metadata.multi_table.SingleTableMetadata') - def test_detect_table_from_csv(self, single_table_mock, log_mock): + @patch('sdv.metadata.multi_table.load_data_from_csv') + def test_detect_table_from_csv(self, load_csv_mock, single_table_mock, log_mock): """Test the ``detect_table_from_csv`` method. If the table does not already exist, a ``SingleTableMetadata`` instance @@ -1604,7 +1605,7 @@ def test_detect_table_from_csv(self, single_table_mock, log_mock): # Setup metadata = MultiTableMetadata() fake_data = Mock() - single_table_mock.return_value.detect_from_csv.return_value = fake_data + load_csv_mock.return_value = fake_data single_table_mock.return_value.to_dict.return_value = { 'columns': {'a': {'sdtype': 'numerical'}} } @@ -1613,7 +1614,8 @@ def test_detect_table_from_csv(self, single_table_mock, log_mock): metadata.detect_table_from_csv('table', 'path.csv') # Assert - single_table_mock.return_value.detect_from_csv.assert_called_once_with('path.csv') + load_csv_mock.assert_called_once_with('path.csv') + single_table_mock.return_value._detect_columns.assert_called_once_with(fake_data) assert metadata.tables == {'table': single_table_mock.return_value} expected_log_calls = call(