import test_appliance import test_emitter import StringIO from yaml import * class TestErrors(test_appliance.TestAppliance): def _testLoaderErrors(self, test_name, invalid_filename): #self._load(invalid_filename) self.failUnlessRaises(YAMLError, lambda: self._load(invalid_filename)) def _testLoaderStringErrors(self, test_name, invalid_filename): #self._load_string(invalid_filename) self.failUnlessRaises(YAMLError, lambda: self._load_string(invalid_filename)) def _testLoaderSingleErrors(self, test_name, invalid_filename): #self._load_single(invalid_filename) self.failUnlessRaises(YAMLError, lambda: self._load_single(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 YAMLError, exc: #print '.'*70 #print "%s:" % exc.__class__.__name__, exc raise def _load(self, filename): try: return list(load_all(file(filename, 'rb'))) 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: return list(load_all(file(filename, 'rb').read())) 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 def _load_single(self, filename): try: return load(file(filename, 'rb').read()) 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('testLoaderErrors', '.loader-error') TestErrors.add_tests('testLoaderStringErrors', '.loader-error') TestErrors.add_tests('testLoaderSingleErrors', '.single-loader-error') TestErrors.add_tests('testEmitterErrors', '.emitter-error') TestErrors.add_tests('testDumperErrors', '.dumper-error')