summaryrefslogtreecommitdiff
path: root/tests/test_stream.py
blob: 706c6a99a749e33ac47777a228a1c58b03a6db1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

import test_appliance
from yaml.stream import Stream, StreamError

class TestStreamErrors(test_appliance.TestAppliance):

    def _testStreamUnicodeErrors(self, test_name, stream_filename):
        try:
            data = unicode(file(stream_filename, 'rb').read(), 'utf-8')
        except:
            return
        self.failUnlessRaises(StreamError, lambda: self._load(stream_filename, data))

    def _testStreamStringErrors(self, test_name, stream_filename):
        data = file(stream_filename, 'rb').read()
        self.failUnlessRaises(StreamError, lambda: self._load(stream_filename, data))

    def _testStreamFileErrors(self, test_name, stream_filename):
        data = file(stream_filename, 'rb')
        self.failUnlessRaises(StreamError, lambda: self._load(stream_filename, data))

    def _load(self, stream_filename, data):
        stream = Stream(stream_filename, data)
        while stream.peek() != u'\0':
            stream.forward()

TestStreamErrors.add_tests('testStreamUnicodeErrors', '.stream-error')
TestStreamErrors.add_tests('testStreamStringErrors', '.stream-error')
TestStreamErrors.add_tests('testStreamFileErrors', '.stream-error')