import test_appliance from yaml.reader import Reader from yaml.scanner import Scanner from yaml.parser import * from yaml.composer import * from yaml.resolver import * from yaml.nodes import * class TestDetector(test_appliance.TestAppliance): def _testDetector(self, test_name, data_filename, detect_filename): node = None correct_tag = None try: correct_tag = file(detect_filename, 'rb').read().strip() resolver = Resolver(Composer(Parser(Scanner(Reader(file(data_filename, 'rb')))))) node = list(iter(resolver))[0] self.failUnless(isinstance(node, SequenceNode)) for scalar in node.value: self.failUnless(isinstance(scalar, ScalarNode)) self.failUnlessEqual(scalar.tag, correct_tag) except: print print "DATA:" print file(data_filename, 'rb').read() print "CORRECT_TAG:" print file(detect_filename, 'rb').read() print "ROOT NODE:", node print "SCALAR NODES:", node.value raise TestDetector.add_tests('testDetector', '.data', '.detect')