[generic] Fix rss under Python 2.x and move test to extractor
This commit is contained in:
		@@ -1458,6 +1458,12 @@ def urlencode_postdata(*args, **kargs):
 | 
			
		||||
    return compat_urllib_parse.urlencode(*args, **kargs).encode('ascii')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    etree_iter = xml.etree.ElementTree.Element.iter
 | 
			
		||||
except AttributeError:  # Python <=2.6
 | 
			
		||||
    etree_iter = lambda n: n.findall('.//*')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def parse_xml(s):
 | 
			
		||||
    class TreeBuilder(xml.etree.ElementTree.TreeBuilder):
 | 
			
		||||
        def doctype(self, name, pubid, system):
 | 
			
		||||
@@ -1465,7 +1471,14 @@ def parse_xml(s):
 | 
			
		||||
 | 
			
		||||
    parser = xml.etree.ElementTree.XMLParser(target=TreeBuilder())
 | 
			
		||||
    kwargs = {'parser': parser} if sys.version_info >= (2, 7) else {}
 | 
			
		||||
    return xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)
 | 
			
		||||
    tree = xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)
 | 
			
		||||
    # Fix up XML parser in Python 2.x
 | 
			
		||||
    if sys.version_info < (3, 0):
 | 
			
		||||
        for n in etree_iter(tree):
 | 
			
		||||
            if n.text is not None:
 | 
			
		||||
                if not isinstance(n.text, compat_str):
 | 
			
		||||
                    n.text = n.text.decode('utf-8')
 | 
			
		||||
    return tree
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if sys.version_info < (3, 0) and sys.platform == 'win32':
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user