summaryrefslogtreecommitdiff
path: root/tests/lib/test_reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/test_reader.py')
-rw-r--r--tests/lib/test_reader.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/lib/test_reader.py b/tests/lib/test_reader.py
new file mode 100644
index 0000000..3576ae6
--- /dev/null
+++ b/tests/lib/test_reader.py
@@ -0,0 +1,35 @@
+
+import yaml.reader
+import codecs
+
+def _run_reader(data, verbose):
+ try:
+ stream = yaml.reader.Reader(data)
+ while stream.peek() != u'\0':
+ stream.forward()
+ except yaml.reader.ReaderError, 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 = unicode(open(error_filename, 'rb').read(), encoding)
+ break
+ except UnicodeDecodeError:
+ pass
+ else:
+ return
+ _run_reader(data, verbose)
+ _run_reader(codecs.open(error_filename, encoding=encoding), verbose)
+
+test_stream_error.unittest = ['.stream-error']
+
+if __name__ == '__main__':
+ import test_appliance
+ test_appliance.run(globals())
+