X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=test%2Ftest_utils.py;h=19f9fce20e0b39bad42de8555876b7804799aa19;hb=f889cea109b4e2647e3fd6a462c9893b88b21e04;hp=113aa44b2e5c319040ebde225a0f9298c766ec31;hpb=410f3e73ab268f74a455798ee39de5caba90caea;p=youtube-dl diff --git a/test/test_utils.py b/test/test_utils.py index 113aa44b2..19f9fce20 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -45,6 +45,9 @@ from youtube_dl.utils import ( escape_rfc3986, escape_url, js_to_json, + get_filesystem_encoding, + compat_getenv, + compat_expanduser, ) @@ -332,14 +335,38 @@ class TestUtil(unittest.TestCase): ) self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') - def test_js_to_json(self): + def test_js_to_json_realworld(self): inp = '''{ - 'clip':{'provider':'pseudo'} + 'clip':{'provider':'pseudo'} }''' self.assertEqual(js_to_json(inp), '''{ - "clip":{"provider":"pseudo"} + "clip":{"provider":"pseudo"} }''') json.loads(js_to_json(inp)) + inp = '''{ + 'playlist':[{'controls':{'all':null}}] + }''' + self.assertEqual(js_to_json(inp), '''{ + "playlist":[{"controls":{"all":null}}] + }''') + + def test_js_to_json_edgecases(self): + on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") + self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) + + on = js_to_json('{"abc": true}') + self.assertEqual(json.loads(on), {'abc': True}) + + def test_compat_getenv(self): + test_str = 'тест' + os.environ['YOUTUBE-DL-TEST'] = test_str.encode(get_filesystem_encoding()) + self.assertEqual(compat_getenv('YOUTUBE-DL-TEST'), test_str) + + def test_compat_expanduser(self): + test_str = 'C:\Documents and Settings\тест\Application Data' + os.environ['HOME'] = test_str.encode(get_filesystem_encoding()) + self.assertEqual(compat_expanduser('~'), test_str) + if __name__ == '__main__': unittest.main()