aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_compat.py
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-11-02 11:23:40 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-11-02 11:23:42 +0100
commit8c25f81beea169c9d6540eea1a6f71dc045da6ed (patch)
treef092b84995976340c8ed5302026fac8a6313a686 /test/test_compat.py
parent4c83c96795b1bf469b0e290fc1cbbed6f49f04bf (diff)
downloadyoutube-dl-8c25f81beea169c9d6540eea1a6f71dc045da6ed.zip
youtube-dl-8c25f81beea169c9d6540eea1a6f71dc045da6ed.tar.gz
youtube-dl-8c25f81beea169c9d6540eea1a6f71dc045da6ed.tar.bz2
[util] Move compatibility functions out of util
utils is large enough without these compatibility functions. Everything that is present in newer versions of Python (i.e. with dev Python it's just an import) goes into compat.py . Everything else (i.e. youtube-dl-specific helpers) goes into utils.py .
Diffstat (limited to 'test/test_compat.py')
-rw-r--r--test/test_compat.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/test_compat.py b/test/test_compat.py
new file mode 100644
index 0000000..d1a33dd
--- /dev/null
+++ b/test/test_compat.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+from __future__ import unicode_literals
+
+# Allow direct execution
+import os
+import sys
+import unittest
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
+from youtube_dl.utils import get_filesystem_encoding
+from youtube_dl.compat import (
+ compat_getenv,
+ compat_expanduser,
+)
+
+
+class TestCompat(unittest.TestCase):
+ def test_compat_getenv(self):
+ test_str = 'тест'
+ os.environ['YOUTUBE-DL-TEST'] = (
+ test_str if sys.version_info >= (3, 0)
+ else 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 if sys.version_info >= (3, 0)
+ else test_str.encode(get_filesystem_encoding()))
+ self.assertEqual(compat_expanduser('~'), test_str)
+
+ def test_all_present(self):
+ import youtube_dl.compat
+ all_names = youtube_dl.compat.__all__
+ present_names = set(filter(
+ lambda c: '_' in c and not c.startswith('_'),
+ dir(youtube_dl.compat)))
+ self.assertEqual(all_names, sorted(present_names))
+
+if __name__ == '__main__':
+ unittest.main()