Update of /cvsroot/python/python/dist/src/Lib/test In directory slayer.i.sourceforge.net:/tmp/cvs-serv25501 Modified Files: test_pyexpat.py Log Message: Change pyexpat test suite to exercise the .returns_unicode attribute, parsing the sample data once with 8-bit strings and once with Unicode. Index: test_pyexpat.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_pyexpat.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** test_pyexpat.py 2000/04/02 05:15:38 1.2 --- test_pyexpat.py 2000/06/27 00:37:25 1.3 *************** *** 11,18 **** class Outputter: def StartElementHandler(self, name, attrs): ! print 'Start element:\n\t', name, attrs def EndElementHandler(self, name): ! print 'End element:\n\t', name def CharacterDataHandler(self, data): --- 11,18 ---- class Outputter: def StartElementHandler(self, name, attrs): ! print 'Start element:\n\t', repr(name), attrs def EndElementHandler(self, name): ! print 'End element:\n\t', repr(name) def CharacterDataHandler(self, data): *************** *** 23,33 **** def ProcessingInstructionHandler(self, target, data): ! print 'PI:\n\t', target, data def StartNamespaceDeclHandler(self, prefix, uri): ! print 'NS decl:\n\t', prefix, uri def EndNamespaceDeclHandler(self, prefix): ! print 'End of NS decl:\n\t', prefix def StartCdataSectionHandler(self): --- 23,33 ---- def ProcessingInstructionHandler(self, target, data): ! print 'PI:\n\t', repr(target), repr(data) def StartNamespaceDeclHandler(self, prefix, uri): ! print 'NS decl:\n\t', repr(prefix), repr(uri) def EndNamespaceDeclHandler(self, prefix): ! print 'End of NS decl:\n\t', repr(prefix) def StartCdataSectionHandler(self): *************** *** 52,57 **** return 1 ! def ExternalEntityRefHandler(self, context, base, sysId, pubId): ! print 'External entity ref:', context, base, sysId, pubId return 1 --- 52,58 ---- return 1 ! def ExternalEntityRefHandler(self, *args): ! context, base, sysId, pubId = args ! print 'External entity ref:', args return 1 *************** *** 65,69 **** out = Outputter() parser = pyexpat.ParserCreate(namespace_separator='!') ! for name in ['StartElementHandler', 'EndElementHandler', 'CharacterDataHandler', 'ProcessingInstructionHandler', 'UnparsedEntityDeclHandler', 'NotationDeclHandler', --- 66,77 ---- out = Outputter() parser = pyexpat.ParserCreate(namespace_separator='!') ! ! # Test getting/setting returns_unicode ! parser.returns_unicode = 0 ; assert parser.returns_unicode == 0 ! parser.returns_unicode = 1 ; assert parser.returns_unicode == 1 ! parser.returns_unicode = 2 ; assert parser.returns_unicode == 1 ! parser.returns_unicode = 0 ; assert parser.returns_unicode == 0 ! ! HANDLER_NAMES = ['StartElementHandler', 'EndElementHandler', 'CharacterDataHandler', 'ProcessingInstructionHandler', 'UnparsedEntityDeclHandler', 'NotationDeclHandler', *************** *** 74,78 **** #'NotStandaloneHandler', 'ExternalEntityRefHandler' ! ]: setattr(parser, name, getattr(out, name) ) --- 82,87 ---- #'NotStandaloneHandler', 'ExternalEntityRefHandler' ! ] ! for name in HANDLER_NAMES: setattr(parser, name, getattr(out, name) ) *************** *** 89,93 **** ]> ! <root> <myns:subelement xmlns:myns="http://www.python.org/namespace"> Contents of subelements --- 98,102 ---- ]> ! <root attr1="value1" attr2="value2ὀ"> <myns:subelement xmlns:myns="http://www.python.org/namespace"> Contents of subelements *************** *** 98,103 **** --- 107,144 ---- """ + # Produce UTF-8 output + parser.returns_unicode = 0 try: parser.Parse(data, 1) + except pyexpat.error: + print '** Error', parser.ErrorCode, pyexpat.ErrorString( parser.ErrorCode) + print '** Line', parser.ErrorLineNumber + print '** Column', parser.ErrorColumnNumber + print '** Byte', parser.ErrorByteIndex + + # Try the parse again, this time producing Unicode output + parser = pyexpat.ParserCreate(namespace_separator='!') + parser.returns_unicode = 1 + + for name in HANDLER_NAMES: + setattr(parser, name, getattr(out, name) ) + try: + parser.Parse(data, 1) + except pyexpat.error: + print '** Error', parser.ErrorCode, pyexpat.ErrorString( parser.ErrorCode) + print '** Line', parser.ErrorLineNumber + print '** Column', parser.ErrorColumnNumber + print '** Byte', parser.ErrorByteIndex + + # Try parsing a file + parser = pyexpat.ParserCreate(namespace_separator='!') + parser.returns_unicode = 1 + + for name in HANDLER_NAMES: + setattr(parser, name, getattr(out, name) ) + import StringIO + file = StringIO.StringIO(data) + try: + parser.ParseFile(file) except pyexpat.error: print '** Error', parser.ErrorCode, pyexpat.ErrorString( parser.ErrorCode)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4