mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[compat] compat_etree_fromstring: only decode bytes objects
This commit is contained in:
		| @@ -74,9 +74,10 @@ class TestCompat(unittest.TestCase): | |||||||
|         self.assertEqual(compat_shlex_split('-option "one two"'), ['-option', 'one two']) |         self.assertEqual(compat_shlex_split('-option "one two"'), ['-option', 'one two']) | ||||||
|  |  | ||||||
|     def test_compat_etree_fromstring(self): |     def test_compat_etree_fromstring(self): | ||||||
|         xml = '<el foo="bar"></el>' |         xml = '<el foo="bar" spam="中文"></el>' | ||||||
|         doc = compat_etree_fromstring(xml.encode('utf-8')) |         doc = compat_etree_fromstring(xml.encode('utf-8')) | ||||||
|         self.assertTrue(isinstance(doc.attrib['foo'], compat_str)) |         self.assertTrue(isinstance(doc.attrib['foo'], compat_str)) | ||||||
|  |         self.assertTrue(isinstance(doc.attrib['spam'], compat_str)) | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|   | |||||||
| @@ -216,8 +216,7 @@ except ImportError:  # Python 2.6 | |||||||
| if sys.version_info[0] >= 3: | if sys.version_info[0] >= 3: | ||||||
|     compat_etree_fromstring = xml.etree.ElementTree.fromstring |     compat_etree_fromstring = xml.etree.ElementTree.fromstring | ||||||
| else: | else: | ||||||
|     # on python 2.x the the attributes of a node are str objects instead of |     # on python 2.x the the attributes of a node aren't always unicode objects | ||||||
|     # unicode |  | ||||||
|     etree = xml.etree.ElementTree |     etree = xml.etree.ElementTree | ||||||
|  |  | ||||||
|     # on 2.6 XML doesn't have a parser argument, function copied from CPython |     # on 2.6 XML doesn't have a parser argument, function copied from CPython | ||||||
| @@ -231,6 +230,7 @@ else: | |||||||
|     def _element_factory(*args, **kwargs): |     def _element_factory(*args, **kwargs): | ||||||
|         el = etree.Element(*args, **kwargs) |         el = etree.Element(*args, **kwargs) | ||||||
|         for k, v in el.items(): |         for k, v in el.items(): | ||||||
|  |             if isinstance(v, bytes): | ||||||
|                 el.set(k, v.decode('utf-8')) |                 el.set(k, v.decode('utf-8')) | ||||||
|         return el |         return el | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz