From: Sergey M․ Date: Sun, 26 Oct 2014 12:56:52 +0000 (+0700) Subject: Merge branch 'compat-getenv-and-expanduser' of https://github.com/dstftw/youtube... X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=youtube-dl;a=commitdiff_plain;h=f889cea109b4e2647e3fd6a462c9893b88b21e04 Merge branch 'compat-getenv-and-expanduser' of https://github.com/dstftw/youtube-dl into dstftw-compat-getenv-and-expanduser Conflicts: test/test_utils.py youtube_dl/__init__.py --- f889cea109b4e2647e3fd6a462c9893b88b21e04 diff --cc test/test_utils.py index bcca0efea,19c9ba7f8..19f9fce20 --- a/test/test_utils.py +++ b/test/test_utils.py @@@ -44,7 -44,9 +44,10 @@@ from youtube_dl.utils import limit_length, escape_rfc3986, escape_url, + js_to_json, + get_filesystem_encoding, + compat_getenv, + compat_expanduser, ) @@@ -332,28 -334,15 +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_realworld(self): + inp = '''{ + 'clip':{'provider':'pseudo'} + }''' + self.assertEqual(js_to_json(inp), '''{ + "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() diff --cc youtube_dl/__init__.py index 578ecc4ab,e73bc5c37..cb4f2e41c --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@@ -286,8 -285,8 +287,8 @@@ def _real_main(argv=None) u' file! Use "{0}.%(ext)s" instead of "{0}" as the output' u' template'.format(outtmpl)) - any_printing = opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.getduration or opts.dumpjson + any_printing = opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.getduration or opts.dumpjson or opts.dump_single_json - download_archive_fn = os.path.expanduser(opts.download_archive) if opts.download_archive is not None else opts.download_archive + download_archive_fn = compat_expanduser(opts.download_archive) if opts.download_archive is not None else opts.download_archive ydl_opts = { 'usenetrc': opts.usenetrc,