Fix bugs in Resolver and add more tests.
[pyyaml/python3.git] / tests / test_errors.py
blob43834cbde51948629691ee11763bf99d4ec1cd37
2 import test_appliance
4 from yaml.error import YAMLError
5 from yaml.reader import *
6 from yaml.scanner import *
7 from yaml.parser import *
8 from yaml.composer import *
9 from yaml.resolver import *
11 class TestErrors(test_appliance.TestAppliance):
13 def _testErrors(self, test_name, invalid_filename):
14 #self._load(invalid_filename)
15 self.failUnlessRaises(YAMLError, lambda: self._load(invalid_filename))
17 def _testStringErrors(self, test_name, invalid_filename):
18 #self._load_string(invalid_filename)
19 self.failUnlessRaises(YAMLError, lambda: self._load_string(invalid_filename))
21 def _load(self, filename):
22 try:
23 reader = Reader(file(filename, 'rb'))
24 scanner = Scanner(reader)
25 parser = Parser(scanner)
26 composer = Composer(parser)
27 resolver = Resolver(composer)
28 return list(composer)
29 except YAMLError, exc:
30 #except ScannerError, exc:
31 #except ParserError, exc:
32 #except ComposerError, exc:
33 #print '.'*70
34 #print "%s:" % exc.__class__.__name__, exc
35 raise
37 def _load_string(self, filename):
38 try:
39 reader = Reader(file(filename, 'rb').read())
40 scanner = Scanner(reader)
41 parser = Parser(scanner)
42 composer = Composer(parser)
43 resolver = Resolver(composer)
44 return list(composer)
45 except YAMLError, exc:
46 #except ScannerError, exc:
47 #except ParserError, exc:
48 #except ComposerError, exc:
49 #print '.'*70
50 #print "%s:" % filename
51 #print "%s:" % exc.__class__.__name__, exc
52 raise
54 TestErrors.add_tests('testErrors', '.error-message')
55 TestErrors.add_tests('testStringErrors', '.error-message')