|
|
@ -68,6 +68,9 @@ from youtube_dl.utils import (
|
|
|
|
cli_valueless_option,
|
|
|
|
cli_valueless_option,
|
|
|
|
cli_bool_option,
|
|
|
|
cli_bool_option,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
from youtube_dl.compat import (
|
|
|
|
|
|
|
|
compat_etree_fromstring,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestUtil(unittest.TestCase):
|
|
|
|
class TestUtil(unittest.TestCase):
|
|
|
@ -242,7 +245,7 @@ class TestUtil(unittest.TestCase):
|
|
|
|
<node x="b" y="d" />
|
|
|
|
<node x="b" y="d" />
|
|
|
|
<node x="" />
|
|
|
|
<node x="" />
|
|
|
|
</root>'''
|
|
|
|
</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'), None)
|
|
|
|
self.assertEqual(find_xpath_attr(doc, './/fourohfour', 'n', 'v'), 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>
|
|
|
|
<url>http://server.com/download.mp3</url>
|
|
|
|
</media:song>
|
|
|
|
</media:song>
|
|
|
|
</root>'''
|
|
|
|
</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/'}))
|
|
|
|
find = lambda p: doc.find(xpath_with_ns(p, {'media': 'http://example.com/'}))
|
|
|
|
self.assertTrue(find('media:song') is not None)
|
|
|
|
self.assertTrue(find('media:song') is not None)
|
|
|
|
self.assertEqual(find('media:song/media:author').text, 'The Author')
|
|
|
|
self.assertEqual(find('media:song/media:author').text, 'The Author')
|
|
|
@ -285,7 +288,7 @@ class TestUtil(unittest.TestCase):
|
|
|
|
<p>Foo</p>
|
|
|
|
<p>Foo</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</root>'''
|
|
|
|
</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/p'), 'Foo')
|
|
|
|
self.assertEqual(xpath_text(doc, 'div/bar', default='default'), 'default')
|
|
|
|
self.assertEqual(xpath_text(doc, 'div/bar', default='default'), 'default')
|
|
|
|
self.assertTrue(xpath_text(doc, 'div/bar') is None)
|
|
|
|
self.assertTrue(xpath_text(doc, 'div/bar') is None)
|
|
|
@ -297,7 +300,7 @@ class TestUtil(unittest.TestCase):
|
|
|
|
<p x="a">Foo</p>
|
|
|
|
<p x="a">Foo</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</root>'''
|
|
|
|
</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/p', 'x'), 'a')
|
|
|
|
self.assertEqual(xpath_attr(doc, 'div/bar', 'x'), None)
|
|
|
|
self.assertEqual(xpath_attr(doc, 'div/bar', 'x'), None)
|
|
|
|
self.assertEqual(xpath_attr(doc, 'div/p', 'y'), None)
|
|
|
|
self.assertEqual(xpath_attr(doc, 'div/p', 'y'), None)
|
|
|
|