@@ -218,7 +218,7 @@ def __call__(self, *args, **kwargs):
218218 processor .run ()
219219 assert get_view_exceptions_location_message () not in caplog .text
220220
221- def test_run_when_row_is_endline_does_not_process_row (self , mock_open , caplog ):
221+ def test_run_when_row_is_endline_does_not_process_row (self , mock_open ):
222222 processed_rows = []
223223
224224 def func_for_bulk (test ):
@@ -229,9 +229,25 @@ def __call__(self, *args, **kwargs):
229229 return ["row1" , "row2" , "\n " ]
230230
231231 processor = BulkProcessor ("some/path" , func_for_bulk , MockRowReader ())
232- with caplog .at_level (logging .INFO ):
233- processor .run ()
232+ processor .run ()
234233
235234 assert "row1" in processed_rows
236235 assert "row2" in processed_rows
237236 assert "row3" not in processed_rows
237+
238+ def test_run_when_reader_returns_dict_rows_containing_empty_strs_converts_them_to_none (
239+ self , mock_open
240+ ):
241+ processed_rows = []
242+
243+ def func_for_bulk (test1 , test2 ):
244+ processed_rows .append ((test1 , test2 ))
245+
246+ class MockDictReader (object ):
247+ def __call__ (self , * args , ** kwargs ):
248+ return [{"test1" : "" , "test2" : "foo" }, {"test1" : "bar" , "test2" : u"" }]
249+
250+ processor = BulkProcessor ("some/path" , func_for_bulk , MockDictReader ())
251+ processor .run ()
252+ assert (None , "foo" ) in processed_rows
253+ assert ("bar" , None ) in processed_rows
0 commit comments