diff options
| author | remitamine <remitamine@gmail.com> | 2015-12-03 20:33:22 +0100 | 
|---|---|---|
| committer | remitamine <remitamine@gmail.com> | 2015-12-03 20:33:22 +0100 | 
| commit | 78653a33aa00ba5205940c2baac5d9f019795b88 (patch) | |
| tree | 246fd038effd402bc66de4c8afb36e6c318efcaa /test/test_utils.py | |
| parent | 77302fe5c989b9cafcb675c0a03642b80fa557ff (diff) | |
| parent | 24dc1ed715239f85eb3d5f71a707da1dd2bc7773 (diff) | |
Merge remote-tracking branch 'upstream/master' into bliptv
Diffstat (limited to 'test/test_utils.py')
| -rw-r--r-- | test/test_utils.py | 36 | 
1 files changed, 30 insertions, 6 deletions
| diff --git a/test/test_utils.py b/test/test_utils.py index a5f164c49..501355c74 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -21,6 +21,7 @@ from youtube_dl.utils import (      clean_html,      DateRange,      detect_exe_version, +    determine_ext,      encodeFilename,      escape_rfc3986,      escape_url, @@ -68,6 +69,9 @@ from youtube_dl.utils import (      cli_valueless_option,      cli_bool_option,  ) +from youtube_dl.compat import ( +    compat_etree_fromstring, +)  class TestUtil(unittest.TestCase): @@ -207,8 +211,8 @@ class TestUtil(unittest.TestCase):          self.assertEqual(unescapeHTML('%20;'), '%20;')          self.assertEqual(unescapeHTML('/'), '/')          self.assertEqual(unescapeHTML('/'), '/') -        self.assertEqual( -            unescapeHTML('é'), 'é') +        self.assertEqual(unescapeHTML('é'), 'é') +        self.assertEqual(unescapeHTML('�'), '�')      def test_daterange(self):          _20century = DateRange("19000101", "20000101") @@ -233,6 +237,14 @@ class TestUtil(unittest.TestCase):              unified_strdate('2/2/2015 6:47:40 PM', day_first=False),              '20150202')          self.assertEqual(unified_strdate('25-09-2014'), '20140925') +        self.assertEqual(unified_strdate('UNKNOWN DATE FORMAT'), None) + +    def test_determine_ext(self): +        self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4') +        self.assertEqual(determine_ext('http://example.com/foo/bar/?download', None), None) +        self.assertEqual(determine_ext('http://example.com/foo/bar.nonext/?download', None), None) +        self.assertEqual(determine_ext('http://example.com/foo/bar/mp4?download', None), None) +        self.assertEqual(determine_ext('http://example.com/foo/bar.m3u8//?download'), 'm3u8')      def test_find_xpath_attr(self):          testxml = '''<root> @@ -242,7 +254,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 +275,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') @@ -275,9 +287,16 @@ class TestUtil(unittest.TestCase):          p = xml.etree.ElementTree.SubElement(div, 'p')          p.text = 'Foo'          self.assertEqual(xpath_element(doc, 'div/p'), p) +        self.assertEqual(xpath_element(doc, ['div/p']), p) +        self.assertEqual(xpath_element(doc, ['div/bar', 'div/p']), p)          self.assertEqual(xpath_element(doc, 'div/bar', default='default'), 'default') +        self.assertEqual(xpath_element(doc, ['div/bar'], default='default'), 'default')          self.assertTrue(xpath_element(doc, 'div/bar') is None) +        self.assertTrue(xpath_element(doc, ['div/bar']) is None) +        self.assertTrue(xpath_element(doc, ['div/bar'], 'div/baz') is None)          self.assertRaises(ExtractorError, xpath_element, doc, 'div/bar', fatal=True) +        self.assertRaises(ExtractorError, xpath_element, doc, ['div/bar'], fatal=True) +        self.assertRaises(ExtractorError, xpath_element, doc, ['div/bar', 'div/baz'], fatal=True)      def test_xpath_text(self):          testxml = '''<root> @@ -285,7 +304,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 +316,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) @@ -425,6 +444,8 @@ class TestUtil(unittest.TestCase):          self.assertEqual(parse_iso8601('2014-03-23T22:04:26+0000'), 1395612266)          self.assertEqual(parse_iso8601('2014-03-23T22:04:26Z'), 1395612266)          self.assertEqual(parse_iso8601('2014-03-23T22:04:26.1234Z'), 1395612266) +        self.assertEqual(parse_iso8601('2015-09-29T08:27:31.727'), 1443515251) +        self.assertEqual(parse_iso8601('2015-09-29T08-27-31.727'), None)      def test_strip_jsonp(self):          stripped = strip_jsonp('cb ([ {"id":"532cb",\n\n\n"x":\n3}\n]\n);') @@ -495,6 +516,9 @@ class TestUtil(unittest.TestCase):              "playlist":[{"controls":{"all":null}}]          }''') +        inp = '''"The CW\\'s \\'Crazy Ex-Girlfriend\\'"''' +        self.assertEqual(js_to_json(inp), '''"The CW's 'Crazy Ex-Girlfriend'"''') +          inp = '"SAND Number: SAND 2013-7800P\\nPresenter: Tom Russo\\nHabanero Software Training - Xyce Software\\nXyce, Sandia\\u0027s"'          json_code = js_to_json(inp)          self.assertEqual(json.loads(json_code), json.loads(inp)) | 
