def test_process_syrx_file_mass_records(self, uow): syrx_file_handler = SyrxFileHandler() syrx_file_handler.logger = Mock() syrx_file_handler.date_str = Mock() bad_record_file_mock = MagicMock() summary = ProcessSyrxRecordsReturn() summary.num_good_records = 200 summary.num_bad_records = 0 syrx_file_handler.process_syrx_records = Mock(return_value=summary) read_file_stream = io.StringIO() for i in range(400): read_file_stream.write(u'{"name": "record"}\n') # add extra record to force small batch for good measure read_file_stream.write(u'{"name": "record"}') read_file_stream.seek(0) parsed_list = [{"name": "record"} for i in range(200)] rv = syrx_file_handler.process_syrx_file(read_file_stream, bad_record_file_mock) syrx_file_handler.process_syrx_records.assert_has_calls([call(parsed_list, bad_record_file_mock), call(parsed_list, bad_record_file_mock), call([{"name": "record"}], bad_record_file_mock)]) assert rv.num_good_records == 600
def test_process_johnson_records(self, get_record_ranges, insert_records, delete_old_records, get_equipment_point_records, uow): syrx_file_handler = SyrxFileHandler() equipment_point_records = EquipmentPointRecordsReturn() equipment_point_records.equipment_point_records = [ {"name": "record0"}, {"name": "record1"} ] equipment_point_records.bad_records = [ {"name": "record2"}, {"name": "record3"} ] get_equipment_point_records.return_value = equipment_point_records records = Mock() bad_record_file = io.StringIO() rv = syrx_file_handler.process_syrx_records(records, bad_record_file) get_equipment_point_records.assert_called_with(records) delete_old_records.assert_called_with(equipment_point_records.equipment_point_records) insert_records.assert_called_with(equipment_point_records.equipment_point_records) bad_record_file.seek(0) bad_records_written_data = bad_record_file.read().strip().split("\n") assert len(bad_records_written_data) == 2 assert json.loads(bad_records_written_data[0]) == {"name": "record2"} assert json.loads(bad_records_written_data[1]) == {"name": "record3"} get_record_ranges.assert_called_with(equipment_point_records.equipment_point_records) assert rv.num_good_records == 2 assert rv.num_bad_records == 2 assert rv.record_ranges == get_record_ranges.return_value
def test_process_syrx_file(self, uow): syrx_file_handler = SyrxFileHandler() syrx_file_handler.logger = Mock() syrx_file_handler.syrx_upload_folder = Mock() syrx_file_handler.date_str = Mock() bad_record_file_mock = MagicMock() summary = ProcessSyrxRecordsReturn() summary.num_good_records = 3 summary.num_bad_records = 1 syrx_file_handler.process_syrx_records = Mock(return_value=summary) read_file_stream = io.StringIO() read_file_stream.write(u'{"name": "record0"}\n' u'{"name": "record1"}\n' u'{"name": "record2"}\n' u'{"name": "record3"}') read_file_stream.seek(0) parsed_list = [{"name": "record0"}, {"name": "record1"}, {"name": "record2"}, {"name": "record3"}] rv = syrx_file_handler.process_syrx_file(read_file_stream, bad_record_file_mock) syrx_file_handler.process_syrx_records.assert_called_with(parsed_list, bad_record_file_mock) assert rv.num_good_records == 3 and rv.num_bad_records == 1