def test_process_fieldserver_file_path_no_bad_records(self, move, remove, open_mock, path_join, named_temporary_file, uow):
        fieldserver_file_handler = FieldserverFileHandler()
        fieldserver_file_handler.logger = Mock()
        fieldserver_file_handler.date_str = Mock()

        summary = ProcessFieldserverRecordsSummaryReturn()
        summary.num_bad_records = 0
        fieldserver_file_handler.process_fieldserver_file = Mock(return_value=summary)

        file_path = MagicMock()

        good_record_file_path = path_join.return_value
        bad_record_file_mock = named_temporary_file.return_value
        good_record_file_mock = MagicMock()
        read_file_mock = MagicMock()

        def open_mock_side_effect(path, mode):
            if path == good_record_file_path and mode == "a":
                return good_record_file_mock
            elif path == file_path and mode == "r":
                return read_file_mock
            else:
                return None
        open_mock.side_effect = open_mock_side_effect

        fieldserver_file_handler.process_fieldserver_file_path(file_path)

        named_temporary_file.assert_called_with(delete=False)
        fieldserver_file_handler.process_fieldserver_file.assert_called_with(read_file_mock.__enter__.return_value,
                                                                     good_record_file_mock.__enter__.return_value,
                                                                     bad_record_file_mock)

        remove.assert_has_calls([call(file_path), call(bad_record_file_mock.name)])
        bad_record_file_mock.close.assert_called_with()
    def test_process_fieldserver_filename_exception(self, path_join, uow):
        fieldserver_file_handler = FieldserverFileHandler()
        fieldserver_file_handler.logger = Mock()
        fieldserver_file_handler.date_str = Mock()
        fieldserver_file_handler.process_fieldserver_file_path = Mock(side_effect=Exception())

        containing_directory = Mock()
        file_name = Mock()

        fieldserver_file_handler.process_fieldserver_filename(0, containing_directory, file_name, 1)
        path_join.assert_called_with(containing_directory, file_name)
        fieldserver_file_handler.process_fieldserver_file_path.assert_called_with(path_join.return_value)
        assert fieldserver_file_handler.logger.exception.call_count == 1