summaryrefslogtreecommitdiff
path: root/tests/test_errors.py
blob: 74ba9f2ef78b5c98bd238fa8838f40e3ad7b63d1 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

import test_appliance

from yaml import *

class TestErrors(test_appliance.TestAppliance):

    def _testErrors(self, test_name, invalid_filename):
        #self._load(invalid_filename)
        self.failUnlessRaises(YAMLError, lambda: self._load(invalid_filename))

    def _testStringErrors(self, test_name, invalid_filename):
        #self._load_string(invalid_filename)
        self.failUnlessRaises(YAMLError, lambda: self._load_string(invalid_filename))

    def _load(self, filename):
        try:
            reader = Reader(file(filename, 'rb'))
            scanner = Scanner(reader)
            parser = Parser(scanner)
            composer = Composer(parser)
            resolver = Resolver(composer)
            constructor = Constructor(resolver)
            return list(constructor)
        except YAMLError, exc:
        #except ScannerError, exc:
        #except ParserError, exc:
        #except ComposerError, exc:
            #print '.'*70
            #print "%s:" % exc.__class__.__name__, exc
            raise

    def _load_string(self, filename):
        try:
            reader = Reader(file(filename, 'rb').read())
            scanner = Scanner(reader)
            parser = Parser(scanner)
            composer = Composer(parser)
            resolver = Resolver(composer)
            constructor = Constructor(resolver)
            return list(constructor)
        #except YAMLError, exc:
        #except ScannerError, exc:
        #except ParserError, exc:
        #except ComposerError, exc:
        except ConstructorError, exc:
            print '.'*70
            print "%s:" % filename
            print "%s:" % exc.__class__.__name__, exc
            raise

TestErrors.add_tests('testErrors', '.error-message')
TestErrors.add_tests('testStringErrors', '.error-message')