--- ../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
 
