| import yaml.reader | |
| def _run_reader(data, verbose): | |
| try: | |
| stream = yaml.reader.Reader(data) | |
| while stream.peek() != '\0': | |
| stream.forward() | |
| except yaml.reader.ReaderError as exc: | |
| if verbose: | |
| print(exc) | |
| else: | |
| raise AssertionError("expected an exception") | |
| def test_stream_error(error_filename, verbose=False): | |
| with open(error_filename, 'rb') as file: | |
| _run_reader(file, verbose) | |
| with open(error_filename, 'rb') as file: | |
| _run_reader(file.read(), verbose) | |
| for encoding in ['utf-8', 'utf-16-le', 'utf-16-be']: | |
| try: | |
| with open(error_filename, 'rb') as file: | |
| data = file.read().decode(encoding) | |
| break | |
| except UnicodeDecodeError: | |
| pass | |
| else: | |
| return | |
| _run_reader(data, verbose) | |
| with open(error_filename, encoding=encoding) as file: | |
| _run_reader(file, verbose) | |
| test_stream_error.unittest = ['.stream-error'] | |
| if __name__ == '__main__': | |
| import test_appliance | |
| test_appliance.run(globals()) | |