diff options
| author | Sergey M․ <dstftw@gmail.com> | 2017-03-26 02:30:10 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2017-03-26 02:30:10 +0700 | 
| commit | 51098426b83a8ebce4b0c08e869ce023232089fd (patch) | |
| tree | a7d851f3b72e81525ea806ee12d72dc660c0d36f | |
| parent | fb4fc44928d042a33287fd3e8e18b721c29ff8e8 (diff) | |
[utils] Introduce expand_path
| -rw-r--r-- | test/test_utils.py | 10 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 6 | 
2 files changed, 16 insertions, 0 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index 173c49514..8c50b46e8 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -56,6 +56,7 @@ from youtube_dl.utils import (      read_batch_urls,      sanitize_filename,      sanitize_path, +    expand_path,      prepend_extension,      replace_extension,      remove_start, @@ -95,6 +96,8 @@ from youtube_dl.utils import (  from youtube_dl.compat import (      compat_chr,      compat_etree_fromstring, +    compat_getenv, +    compat_setenv,      compat_urlparse,      compat_parse_qs,  ) @@ -214,6 +217,13 @@ class TestUtil(unittest.TestCase):          self.assertEqual(sanitize_path('./abc'), 'abc')          self.assertEqual(sanitize_path('./../abc'), '..\\abc') +    def test_expand_path(self): +        compat_setenv('YOUTUBE-DL-EXPATH-PATH', 'expanded') +        self.assertEqual(expand_path('%YOUTUBE-DL-EXPATH-PATH%'), 'expanded') +        self.assertEqual(expand_path('%HOMEPATH%'), compat_getenv('HOMEPATH')) +        self.assertEqual(expand_path('~'), compat_getenv('HOME')) +        self.assertEqual(expand_path('~/%YOUTUBE-DL-EXPATH-PATH%'), '%s/expanded' % compat_getenv('HOME')) +      def test_prepend_extension(self):          self.assertEqual(prepend_extension('abc.ext', 'temp'), 'abc.temp.ext')          self.assertEqual(prepend_extension('abc.ext', 'temp', 'ext'), 'abc.temp.ext') diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index d293c7498..2340bc306 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -39,6 +39,7 @@ from .compat import (      compat_basestring,      compat_chr,      compat_etree_fromstring, +    compat_expanduser,      compat_html_entities,      compat_html_entities_html5,      compat_http_client, @@ -539,6 +540,11 @@ def sanitized_Request(url, *args, **kwargs):      return compat_urllib_request.Request(sanitize_url(url), *args, **kwargs) +def expand_path(s): +    """Expand shell variables and ~""" +    return os.path.expandvars(compat_expanduser(s)) + +  def orderedSet(iterable):      """ Remove all duplicates from the input iterable """      res = []  | 
