@@ -77,6 +77,12 @@ def test_csv_strict_headers(self):
7777 self .env .execute ('test_csv_strict_headers' )
7878 _check_csv_strict_headers_results (self , self .test_sink .get_results (True , False ))
7979
80+ def test_csv_default_null_value (self ):
81+ schema , lines = _create_csv_default_null_value_schema_and_lines ()
82+ self ._build_csv_job (schema , lines )
83+ self .env .execute ('test_csv_default_null_value' )
84+ _check_csv_default_null_value_results (self , self .test_sink .get_results (True , False ))
85+
8086 def test_csv_default_quote_char (self ):
8187 schema , lines = _create_csv_default_quote_char_schema_and_lines ()
8288 self ._build_csv_job (schema , lines )
@@ -344,6 +350,24 @@ def _check_csv_use_header_results(test, results):
344350 test .assertEqual (row ['number' ], 123 )
345351
346352
353+ def _create_csv_default_null_value_schema_and_lines () -> Tuple [CsvSchema , List [str ]]:
354+ schema = CsvSchema .builder () \
355+ .add_string_column ('string' ) \
356+ .add_number_column ('number' ) \
357+ .set_null_value ('' ) \
358+ .build ()
359+ lines = [
360+ ',123\n '
361+ ]
362+ return schema , lines
363+
364+
365+ def _check_csv_default_null_value_results (test , results ):
366+ row = results [0 ]
367+ test .assertEqual (row ['string' ], None )
368+ test .assertEqual (row ['number' ], 123 )
369+
370+
347371def _create_csv_strict_headers_schema_and_lines () -> Tuple [CsvSchema , List [str ]]:
348372 schema = CsvSchema .builder () \
349373 .add_string_column ('string' ) \
0 commit comments