def stream_parser(request, tmpdir_factory): """Load a stream. """ testdir = os.path.dirname(__file__) stream_file = testdir + '/stdout' stream = Stream(file_path=stream_file) return stream
def stream_parser_file_objects(request, tmpdir_factory): """Load stream file from a file object. """ testdir = os.path.dirname(__file__) stream_file = testdir + '/stdout' stream = None with open(stream_file) as file_handler: stream = Stream(file_handler=file_handler) return stream
def test_stream_override(stream_parser): """Check that the stream override works.""" import re testdir = os.path.dirname(__file__) stream_file = testdir + '/stdout' stream = Stream(file_path=stream_file, config={ 'ibzkpt': { 'kind': 'WARNING', 'regex': 'internal error', 'message': 'some error', 'suggestion': 'none', 'location': 'STDOUT', 'recover': True } }) assert len(stream.entries) == 1 assert stream.entries[0].kind == 'WARNING' assert stream.entries[0].regex == re.compile('internal error') assert stream.entries[0].message == 'some error' assert stream.entries[0].suggestion == 'none' assert stream.entries[0].location == stream_parser.entries[0].location assert stream.entries[0].recover == stream_parser.entries[0].recover
def _init_stream(self, path): """Init with a file path.""" self._parsed_data = {} self._parsable_items = self.__class__.PARSABLE_ITEMS self._data_obj = SingleFile(path=path) # Since the VASP output can be fairly large, we will parse it only # once and store the parsevasp Stream object. # First get any special config from the parser settings, else use the default stream_config = None history = False if self._settings is not None: stream_config = self._settings.get('stream_config', None) history = self._settings.get('stream_history', False) try: self._stream = Stream(file_path=path, logger=self._logger, history=history, config=stream_config) except SystemExit: self._logger.warning( 'Parsevasp exited abruptly when parsing the standard stream. Returning None.' ) self._stream = None