diff --git a/ingen/reader/file_reader.py b/ingen/reader/file_reader.py index df8524b..7553cb9 100644 --- a/ingen/reader/file_reader.py +++ b/ingen/reader/file_reader.py @@ -25,7 +25,7 @@ def read(self, src): dtype = src.get('dtype') try: result = pd.read_csv(src['file_path'], - sep=src.get('delimiter'), + sep=src.get('delimiter', ','), index_col=False, skiprows=config['header_size'], skipfooter=config['trailer_size'], diff --git a/requirements.txt b/requirements.txt index 2aad2df..364eb4d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ pycryptodome>=3.20.0 PyMySQL>=1.1.1 PyYAML>=6.0.2 xmltodict>=0.12.0 +openpyxl>=3.1.5 \ No newline at end of file diff --git a/test/reader/test_file_reader.py b/test/reader/test_file_reader.py index a693614..686fc33 100644 --- a/test/reader/test_file_reader.py +++ b/test/reader/test_file_reader.py @@ -109,6 +109,30 @@ def test_read_all_columns(self, mock_pandas): dtype=None ) + @patch('ingen.reader.file_reader.pd') + def test_default_delimiter_comma(self, mock_pandas): + source = { + 'id': 'test-source', + 'type': 'file', + 'file_type': 'delimited_file', + # 'delimiter' intentionally omitted to test default + 'file_path': 'random/path/to/file', + 'columns': ['first_name', 'last_name'] + } + + reader = ReaderFactory.get_reader(source) + reader.read(source) + + mock_pandas.read_csv.assert_called_with( + source['file_path'], + sep=',', + index_col=False, + skiprows=0, + skipfooter=0, + names=source['columns'], + dtype=None + ) + @patch('ingen.reader.file_reader.pd') def test_column_dtype(self, mock_pandas): source = self._src