summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorxi <xi@18f92427-320e-0410-9341-c67f048884a3>2006-04-18 16:48:00 +0000
committerxi <xi@18f92427-320e-0410-9341-c67f048884a3>2006-04-18 16:48:00 +0000
commit5ca5667d9cd146b216485c3d4c8413409c21b378 (patch)
treea9f7ea432c2d5675a13019c04df1f7b15eb1b551 /tests
parent782ef55810fe27ac6b41539346563feaec3bce39 (diff)
downloadpyyaml-5ca5667d9cd146b216485c3d4c8413409c21b378.tar.gz
Add more unit tests for error messages.
git-svn-id: http://svn.pyyaml.org/pyyaml/trunk@141 18f92427-320e-0410-9341-c67f048884a3
Diffstat (limited to 'tests')
-rw-r--r--tests/data/empty-anchor.emitter-error5
-rw-r--r--tests/data/empty-tag-handle.emitter-error5
-rw-r--r--tests/data/empty-tag-prefix.emitter-error5
-rw-r--r--tests/data/empty-tag.emitter-error5
-rw-r--r--tests/data/expected-document-end.emitter-error6
-rw-r--r--tests/data/expected-document-start.emitter-error4
-rw-r--r--tests/data/expected-node-1.emitter-error4
-rw-r--r--tests/data/expected-node-2.emitter-error7
-rw-r--r--tests/data/expected-nothing.emitter-error4
-rw-r--r--tests/data/expected-stream-start.emitter-error2
-rw-r--r--tests/data/invalid-anchor.emitter-error5
-rw-r--r--tests/data/invalid-tag-handle-1.emitter-error5
-rw-r--r--tests/data/invalid-tag-handle-2.emitter-error5
-rw-r--r--tests/data/no-alias-anchor.emitter-error8
-rw-r--r--tests/data/no-tag.emitter-error5
-rw-r--r--tests/data/recursive.dumper-error3
-rw-r--r--tests/data/serializer-is-already-opened.dumper-error3
-rw-r--r--tests/data/serializer-is-closed-1.dumper-error4
-rw-r--r--tests/data/serializer-is-closed-2.dumper-error4
-rw-r--r--tests/data/serializer-is-not-opened-1.dumper-error2
-rw-r--r--tests/data/serializer-is-not-opened-2.dumper-error2
-rw-r--r--tests/data/unknown.dumper-error1
-rw-r--r--tests/data/unsupported-version.emitter-error5
-rw-r--r--tests/test_errors.py30
24 files changed, 129 insertions, 0 deletions
diff --git a/tests/data/empty-anchor.emitter-error b/tests/data/empty-anchor.emitter-error
new file mode 100644
index 0000000..ce663b6
--- /dev/null
+++ b/tests/data/empty-anchor.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart
+- !Scalar { anchor: '', value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/empty-tag-handle.emitter-error b/tests/data/empty-tag-handle.emitter-error
new file mode 100644
index 0000000..235c899
--- /dev/null
+++ b/tests/data/empty-tag-handle.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart { tags: { '': 'bar' } }
+- !Scalar { value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/empty-tag-prefix.emitter-error b/tests/data/empty-tag-prefix.emitter-error
new file mode 100644
index 0000000..c6c0e95
--- /dev/null
+++ b/tests/data/empty-tag-prefix.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart { tags: { '!': '' } }
+- !Scalar { value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/empty-tag.emitter-error b/tests/data/empty-tag.emitter-error
new file mode 100644
index 0000000..b7ca593
--- /dev/null
+++ b/tests/data/empty-tag.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart
+- !Scalar { tag: '', value: 'key', implicit: [false,false] }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/expected-document-end.emitter-error b/tests/data/expected-document-end.emitter-error
new file mode 100644
index 0000000..0cbab89
--- /dev/null
+++ b/tests/data/expected-document-end.emitter-error
@@ -0,0 +1,6 @@
+- !StreamStart
+- !DocumentStart
+- !Scalar { value: 'data 1' }
+- !Scalar { value: 'data 2' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/expected-document-start.emitter-error b/tests/data/expected-document-start.emitter-error
new file mode 100644
index 0000000..8ce575e
--- /dev/null
+++ b/tests/data/expected-document-start.emitter-error
@@ -0,0 +1,4 @@
+- !StreamStart
+- !MappingStart
+- !MappingEnd
+- !StreamEnd
diff --git a/tests/data/expected-node-1.emitter-error b/tests/data/expected-node-1.emitter-error
new file mode 100644
index 0000000..36ceca3
--- /dev/null
+++ b/tests/data/expected-node-1.emitter-error
@@ -0,0 +1,4 @@
+- !StreamStart
+- !DocumentStart
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/expected-node-2.emitter-error b/tests/data/expected-node-2.emitter-error
new file mode 100644
index 0000000..891ee37
--- /dev/null
+++ b/tests/data/expected-node-2.emitter-error
@@ -0,0 +1,7 @@
+- !StreamStart
+- !DocumentStart
+- !MappingStart
+- !Scalar { value: 'key' }
+- !MappingEnd
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/expected-nothing.emitter-error b/tests/data/expected-nothing.emitter-error
new file mode 100644
index 0000000..62c54d3
--- /dev/null
+++ b/tests/data/expected-nothing.emitter-error
@@ -0,0 +1,4 @@
+- !StreamStart
+- !StreamEnd
+- !StreamStart
+- !StreamEnd
diff --git a/tests/data/expected-stream-start.emitter-error b/tests/data/expected-stream-start.emitter-error
new file mode 100644
index 0000000..480dc2e
--- /dev/null
+++ b/tests/data/expected-stream-start.emitter-error
@@ -0,0 +1,2 @@
+- !DocumentStart
+- !DocumentEnd
diff --git a/tests/data/invalid-anchor.emitter-error b/tests/data/invalid-anchor.emitter-error
new file mode 100644
index 0000000..3d2a814
--- /dev/null
+++ b/tests/data/invalid-anchor.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart
+- !Scalar { anchor: '5*5=25', value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/invalid-tag-handle-1.emitter-error b/tests/data/invalid-tag-handle-1.emitter-error
new file mode 100644
index 0000000..d5df9a2
--- /dev/null
+++ b/tests/data/invalid-tag-handle-1.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart { tags: { '!foo': 'bar' } }
+- !Scalar { value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/invalid-tag-handle-2.emitter-error b/tests/data/invalid-tag-handle-2.emitter-error
new file mode 100644
index 0000000..d1831d5
--- /dev/null
+++ b/tests/data/invalid-tag-handle-2.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart { tags: { '!!!': 'bar' } }
+- !Scalar { value: 'foo' }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/no-alias-anchor.emitter-error b/tests/data/no-alias-anchor.emitter-error
new file mode 100644
index 0000000..5ff065c
--- /dev/null
+++ b/tests/data/no-alias-anchor.emitter-error
@@ -0,0 +1,8 @@
+- !StreamStart
+- !DocumentStart
+- !SequenceStart
+- !Scalar { anchor: A, value: data }
+- !Alias { }
+- !SequenceEnd
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/no-tag.emitter-error b/tests/data/no-tag.emitter-error
new file mode 100644
index 0000000..384c62f
--- /dev/null
+++ b/tests/data/no-tag.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart
+- !Scalar { value: 'foo', implicit: [false,false] }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/data/recursive.dumper-error b/tests/data/recursive.dumper-error
new file mode 100644
index 0000000..3c7cc2f
--- /dev/null
+++ b/tests/data/recursive.dumper-error
@@ -0,0 +1,3 @@
+data = []
+data.append(data)
+dump(data)
diff --git a/tests/data/serializer-is-already-opened.dumper-error b/tests/data/serializer-is-already-opened.dumper-error
new file mode 100644
index 0000000..0f66a46
--- /dev/null
+++ b/tests/data/serializer-is-already-opened.dumper-error
@@ -0,0 +1,3 @@
+dumper = Dumper(StringIO.StringIO())
+dumper.open()
+dumper.open()
diff --git a/tests/data/serializer-is-closed-1.dumper-error b/tests/data/serializer-is-closed-1.dumper-error
new file mode 100644
index 0000000..5d9ecfc
--- /dev/null
+++ b/tests/data/serializer-is-closed-1.dumper-error
@@ -0,0 +1,4 @@
+dumper = Dumper(StringIO.StringIO())
+dumper.open()
+dumper.close()
+dumper.open()
diff --git a/tests/data/serializer-is-closed-2.dumper-error b/tests/data/serializer-is-closed-2.dumper-error
new file mode 100644
index 0000000..0762145
--- /dev/null
+++ b/tests/data/serializer-is-closed-2.dumper-error
@@ -0,0 +1,4 @@
+dumper = Dumper(StringIO.StringIO())
+dumper.open()
+dumper.close()
+dumper.serialize(ScalarNode(tag='!foo', value='bar'))
diff --git a/tests/data/serializer-is-not-opened-1.dumper-error b/tests/data/serializer-is-not-opened-1.dumper-error
new file mode 100644
index 0000000..1d21554
--- /dev/null
+++ b/tests/data/serializer-is-not-opened-1.dumper-error
@@ -0,0 +1,2 @@
+dumper = Dumper(StringIO.StringIO())
+dumper.close()
diff --git a/tests/data/serializer-is-not-opened-2.dumper-error b/tests/data/serializer-is-not-opened-2.dumper-error
new file mode 100644
index 0000000..d1d7f98
--- /dev/null
+++ b/tests/data/serializer-is-not-opened-2.dumper-error
@@ -0,0 +1,2 @@
+dumper = Dumper(StringIO.StringIO())
+dumper.serialize(ScalarNode(tag='!foo', value='bar'))
diff --git a/tests/data/unknown.dumper-error b/tests/data/unknown.dumper-error
new file mode 100644
index 0000000..4de4279
--- /dev/null
+++ b/tests/data/unknown.dumper-error
@@ -0,0 +1 @@
+safe_dump(object)
diff --git a/tests/data/unsupported-version.emitter-error b/tests/data/unsupported-version.emitter-error
new file mode 100644
index 0000000..f9c6197
--- /dev/null
+++ b/tests/data/unsupported-version.emitter-error
@@ -0,0 +1,5 @@
+- !StreamStart
+- !DocumentStart { version: [5,6] }
+- !Scalar { value: foo }
+- !DocumentEnd
+- !StreamEnd
diff --git a/tests/test_errors.py b/tests/test_errors.py
index f85fee1..6c651b4 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -1,5 +1,8 @@
import test_appliance
+import test_emitter
+
+import StringIO
from yaml import *
@@ -13,6 +16,31 @@ class TestErrors(test_appliance.TestAppliance):
#self._load_string(invalid_filename)
self.failUnlessRaises(YAMLError, lambda: self._load_string(invalid_filename))
+ def _testEmitterErrors(self, test_name, invalid_filename):
+ events = list(load(file(invalid_filename, 'rb').read(),
+ Loader=test_emitter.EventsLoader))
+ self.failUnlessRaises(YAMLError, lambda: self._emit(events))
+
+ def _testDumperErrors(self, test_name, invalid_filename):
+ code = file(invalid_filename, 'rb').read()
+ self.failUnlessRaises(YAMLError, lambda: self._dump(code))
+
+ def _dump(self, code):
+ try:
+ exec code
+ except YAMLError, exc:
+ #print '.'*70
+ #print "%s:" % exc.__class__.__name__, exc
+ raise
+
+ def _emit(self, events):
+ try:
+ emit(events)
+ except EmitterError, exc:
+ #print '.'*70
+ #print "%s:" % exc.__class__.__name__, exc
+ raise
+
def _load(self, filename):
try:
return list(load_all(file(filename, 'rb')))
@@ -40,4 +68,6 @@ class TestErrors(test_appliance.TestAppliance):
TestErrors.add_tests('testLoaderErrors', '.loader-error')
TestErrors.add_tests('testLoaderStringErrors', '.loader-error')
+TestErrors.add_tests('testEmitterErrors', '.emitter-error')
+TestErrors.add_tests('testDumperErrors', '.dumper-error')