summaryrefslogtreecommitdiff
path: root/tests/test_reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_reader.py')
-rw-r--r--tests/test_reader.py67
1 files changed, 29 insertions, 38 deletions
diff --git a/tests/test_reader.py b/tests/test_reader.py
index 1bfae1a..3576ae6 100644
--- a/tests/test_reader.py
+++ b/tests/test_reader.py
@@ -1,44 +1,35 @@
-import test_appliance
-from yaml.reader import Reader, ReaderError
-
+import yaml.reader
import codecs
-class TestReaderErrors(test_appliance.TestAppliance):
-
- def _testReaderUnicodeErrors(self, test_name, stream_filename):
- for encoding in ['utf-8', 'utf-16-le', 'utf-16-be']:
- try:
- data = unicode(file(stream_filename, 'rb').read(), encoding)
- break
- except:
- pass
- else:
- return
- #self._load(data)
- self.failUnlessRaises(ReaderError,
- lambda: self._load(data))
- #self._load(codecs.open(stream_filename, encoding=encoding))
- self.failUnlessRaises(ReaderError,
- lambda: self._load(codecs.open(stream_filename, encoding=encoding)))
-
- def _testReaderStringErrors(self, test_name, stream_filename):
- data = file(stream_filename, 'rb').read()
- #self._load(data)
- self.failUnlessRaises(ReaderError, lambda: self._load(data))
-
- def _testReaderFileErrors(self, test_name, stream_filename):
- data = file(stream_filename, 'rb')
- #self._load(data)
- self.failUnlessRaises(ReaderError, lambda: self._load(data))
-
- def _load(self, data):
- stream = Reader(data)
+def _run_reader(data, verbose):
+ try:
+ stream = yaml.reader.Reader(data)
while stream.peek() != u'\0':
stream.forward()
-
-TestReaderErrors.add_tests('testReaderUnicodeErrors', '.stream-error')
-TestReaderErrors.add_tests('testReaderStringErrors', '.stream-error')
-TestReaderErrors.add_tests('testReaderFileErrors', '.stream-error')
-
+ 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())