mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	Use a wrapper around xml.etree.ElementTree.fromstring in python 2.x (#7178)
Attributes aren't unicode objects, so they couldn't be directly used in info_dict fields (for example '--write-description' doesn't work with bytes).
This commit is contained in:
		| @@ -68,6 +68,9 @@ from youtube_dl.utils import ( | ||||
|     cli_valueless_option, | ||||
|     cli_bool_option, | ||||
| ) | ||||
| from youtube_dl.compat import ( | ||||
|     compat_etree_fromstring, | ||||
| ) | ||||
|  | ||||
|  | ||||
| class TestUtil(unittest.TestCase): | ||||
| @@ -242,7 +245,7 @@ class TestUtil(unittest.TestCase): | ||||
|             <node x="b" y="d" /> | ||||
|             <node x="" /> | ||||
|         </root>''' | ||||
|         doc = xml.etree.ElementTree.fromstring(testxml) | ||||
|         doc = compat_etree_fromstring(testxml) | ||||
|  | ||||
|         self.assertEqual(find_xpath_attr(doc, './/fourohfour', 'n'), None) | ||||
|         self.assertEqual(find_xpath_attr(doc, './/fourohfour', 'n', 'v'), None) | ||||
| @@ -263,7 +266,7 @@ class TestUtil(unittest.TestCase): | ||||
|                 <url>http://server.com/download.mp3</url> | ||||
|             </media:song> | ||||
|         </root>''' | ||||
|         doc = xml.etree.ElementTree.fromstring(testxml) | ||||
|         doc = compat_etree_fromstring(testxml) | ||||
|         find = lambda p: doc.find(xpath_with_ns(p, {'media': 'http://example.com/'})) | ||||
|         self.assertTrue(find('media:song') is not None) | ||||
|         self.assertEqual(find('media:song/media:author').text, 'The Author') | ||||
| @@ -285,7 +288,7 @@ class TestUtil(unittest.TestCase): | ||||
|                 <p>Foo</p> | ||||
|             </div> | ||||
|         </root>''' | ||||
|         doc = xml.etree.ElementTree.fromstring(testxml) | ||||
|         doc = compat_etree_fromstring(testxml) | ||||
|         self.assertEqual(xpath_text(doc, 'div/p'), 'Foo') | ||||
|         self.assertEqual(xpath_text(doc, 'div/bar', default='default'), 'default') | ||||
|         self.assertTrue(xpath_text(doc, 'div/bar') is None) | ||||
| @@ -297,7 +300,7 @@ class TestUtil(unittest.TestCase): | ||||
|                 <p x="a">Foo</p> | ||||
|             </div> | ||||
|         </root>''' | ||||
|         doc = xml.etree.ElementTree.fromstring(testxml) | ||||
|         doc = compat_etree_fromstring(testxml) | ||||
|         self.assertEqual(xpath_attr(doc, 'div/p', 'x'), 'a') | ||||
|         self.assertEqual(xpath_attr(doc, 'div/bar', 'x'), None) | ||||
|         self.assertEqual(xpath_attr(doc, 'div/p', 'y'), None) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user