Sergey M․
5 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with
17 additions and
0 deletions
-
test/test_compat.py
-
youtube_dl/compat.py
|
|
@ -13,6 +13,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
|
|
from youtube_dl.compat import ( |
|
|
|
compat_getenv, |
|
|
|
compat_setenv, |
|
|
|
compat_etree_Element, |
|
|
|
compat_etree_fromstring, |
|
|
|
compat_expanduser, |
|
|
|
compat_shlex_split, |
|
|
@ -90,6 +91,12 @@ class TestCompat(unittest.TestCase): |
|
|
|
self.assertEqual(compat_shlex_split('-option "one\ntwo" \n -flag'), ['-option', 'one\ntwo', '-flag']) |
|
|
|
self.assertEqual(compat_shlex_split('-val 中文'), ['-val', '中文']) |
|
|
|
|
|
|
|
def test_compat_etree_Element(self): |
|
|
|
try: |
|
|
|
compat_etree_Element.text |
|
|
|
except AttributeError: |
|
|
|
self.fail('compat_etree_Element is not a type') |
|
|
|
|
|
|
|
def test_compat_etree_fromstring(self): |
|
|
|
xml = ''' |
|
|
|
<root foo="bar" spam="中文"> |
|
|
|
|
|
@ -2508,6 +2508,15 @@ class _TreeBuilder(etree.TreeBuilder): |
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
# xml.etree.ElementTree.Element is a method in Python <=2.6 and |
|
|
|
# the following will crash with: |
|
|
|
# TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types |
|
|
|
isinstance(None, xml.etree.ElementTree.Element) |
|
|
|
from xml.etree.ElementTree import Element as compat_etree_Element |
|
|
|
except TypeError: # Python <=2.6 |
|
|
|
from xml.etree.ElementTree import _ElementInterface as compat_etree_Element |
|
|
|
|
|
|
|
if sys.version_info[0] >= 3: |
|
|
|
def compat_etree_fromstring(text): |
|
|
|
return etree.XML(text, parser=etree.XMLParser(target=_TreeBuilder())) |
|
|
@ -2969,6 +2978,7 @@ __all__ = [ |
|
|
|
'compat_cookiejar', |
|
|
|
'compat_cookies', |
|
|
|
'compat_ctypes_WINFUNCTYPE', |
|
|
|
'compat_etree_Element', |
|
|
|
'compat_etree_fromstring', |
|
|
|
'compat_etree_register_namespace', |
|
|
|
'compat_expanduser', |
|
|
|