
Both @jlowdermilk and I have tried to use this for initial configuration work. It's cheaper just to import it for now: Name: PyYAML Version: 3.11 Summary: YAML parser and emitter for Python Home-page: http://pyyaml.org/wiki/PyYAML Author: Kirill Simonov Author-email: xi@resolvent.net License: MIT Download-URL: http://pyyaml.org/download/pyyaml/PyYAML-3.11.tar.gz Description: YAML is a data serialization format designed for human readability and interaction with scripting languages. PyYAML is a YAML parser and emitter for Python. PyYAML features a complete YAML 1.1 parser, Unicode support, pickle support, capable extension API, and sensible error messages. PyYAML supports standard YAML tags and provides Python-specific tags that allow to represent an arbitrary Python object. PyYAML is applicable for a broad range of tasks from complex configuration files to object serialization and persistance.
35 lines
957 B
Python
35 lines
957 B
Python
|
|
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):
|
|
_run_reader(open(error_filename, 'rb'), verbose)
|
|
_run_reader(open(error_filename, 'rb').read(), verbose)
|
|
for encoding in ['utf-8', 'utf-16-le', 'utf-16-be']:
|
|
try:
|
|
data = open(error_filename, 'rb').read().decode(encoding)
|
|
break
|
|
except UnicodeDecodeError:
|
|
pass
|
|
else:
|
|
return
|
|
_run_reader(data, verbose)
|
|
_run_reader(open(error_filename, encoding=encoding), verbose)
|
|
|
|
test_stream_error.unittest = ['.stream-error']
|
|
|
|
if __name__ == '__main__':
|
|
import test_appliance
|
|
test_appliance.run(globals())
|
|
|