--- ../feedparser3/feedparsertest.py 2007-09-01 12:29:29.000000000 -0400 +++ feedparsertest.py 2007-09-01 19:00:03.000000000 -0400 @@ -97,6 +97,9 @@ class TestCase(unittest.TestCase): def failUnlessEval(self, evalString, env, msg=None): """Fail unless eval(evalString, env)""" + evalString = evalString.replace(": u'",": '") + evalString = evalString.replace("== u'","== '") + evalString = evalString.replace('== u"','== "') failure=(msg or 'not eval(%s)' % evalString) try: env = env.data @@ -121,31 +124,32 @@ --> """ - data = open(xmlfile).read() - if data[:4] == '\x4c\x6f\xa7\x94': + data = open(xmlfile,'rb').read() + if data[:4] == b'\x4c\x6f\xa7\x94': data = feedparser._ebcdic_to_ascii(data) - elif data[:4] == '\x00\x00\xfe\xff': + elif data[:4] == b'\x00\x00\xfe\xff': + data = str(data, 'utf-32be') + elif data[:4] == b'\xff\xfe\x00\x00': if not _utf32_available: return None, None, None, '0' - data = str(data, 'utf-32be').encode('utf-8') - elif data[:4] == '\xff\xfe\x00\x00': + data = str(data, 'utf-32le') + elif data[:4] == b'\x00\x00\x00\x3c': if not _utf32_available: return None, None, None, '0' - data = str(data, 'utf-32le').encode('utf-8') - elif data[:4] == '\x00\x00\x00\x3c': + data = str(data, 'utf-32be') + elif data[:4] == b'\x3c\x00\x00\x00': if not _utf32_available: return None, None, None, '0' - data = str(data, 'utf-32be').encode('utf-8') - elif data[:4] == '\x3c\x00\x00\x00': - if not _utf32_available: return None, None, None, '0' - data = str(data, 'utf-32le').encode('utf-8') - elif data[:4] == '\x00\x3c\x00\x3f': - data = str(data, 'utf-16be').encode('utf-8') - elif data[:4] == '\x3c\x00\x3f\x00': - data = str(data, 'utf-16le').encode('utf-8') - elif (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): - data = str(data[2:], 'utf-16be').encode('utf-8') - elif (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): - data = str(data[2:], 'utf-16le').encode('utf-8') - elif data[:3] == '\xef\xbb\xbf': - data = data[3:] + data = str(data, 'utf-32le') + elif data[:4] == b'\x00\x3c\x00\x3f': + data = str(data, 'utf-16be') + elif data[:4] == b'\x3c\x00\x3f\x00': + data = str(data, 'utf-16le') + elif (data[:2] == b'\xfe\xff') and (data[2:4] != b'\x00\x00'): + data = str(data[2:], 'utf-16be') + elif (data[:2] == b'\xff\xfe') and (data[2:4] != b'\x00\x00'): + data = str(data[2:], 'utf-16le') + elif data[:3] == b'\xef\xbb\xbf': + data = str(data[3:], 'iso-8859-1') + else: + data = str(data, 'iso-8859-1') skip_results = skip_re.search(data) if skip_results: skipUnless = skip_results.group(1).strip() @@ -154,7 +158,7 @@ search_results = desc_re.search(data) if not search_results: raise RuntimeError("can't parse %s" % xmlfile) - description, evalString = list(map(string.strip, list(search_results.groups()))) + description, evalString = list(map(str.strip, list(search_results.groups()))) description = xmlfile + ": " + description return TestCase.failUnlessEval, description, evalString, skipUnless