Merge branch 'compat-getenv-and-expanduser' of https://github.com/dstftw/youtube...
authorSergey M․ <dstftw@gmail.com>
Sun, 26 Oct 2014 12:56:52 +0000 (19:56 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 26 Oct 2014 12:56:52 +0000 (19:56 +0700)
Conflicts:
test/test_utils.py
youtube_dl/__init__.py

1  2 
test/test_utils.py
youtube_dl/YoutubeDL.py
youtube_dl/__init__.py
youtube_dl/options.py
youtube_dl/utils.py

index bcca0efead42b85f39337a4c28f0d654447cd8e2,19c9ba7f847b13b640865598eabbde2a5bd6c22b..19f9fce20e0b39bad42de8555876b7804799aa19
@@@ -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()
Simple merge
index 578ecc4abc8777c45fc95daa338da993ce91f331,e73bc5c37fb6aad2322d0a26914cdfb3d9f8446a..cb4f2e41c71de8ba3c4b60b18d12f4bbc388bd36
@@@ -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,
Simple merge
Simple merge