Source

pyyaml / tests / test_errors.py


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:
        #except ConstructorError, 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')