aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-11-13 15:28:42 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-11-13 15:28:42 +0100
commit4c0924bb24c32e18d1e3c030f8d1faef3c3c56c4 (patch)
tree9c22b423ce39f53321f94955f1be4220c0bf5eb6
parent3fa5bb38028b38a6e65779f0b38407e6a46d15ea (diff)
downloadyoutube-dl-4c0924bb24c32e18d1e3c030f8d1faef3c3c56c4.tar.xz
[utils] Fix intlist_to_bytes in Python 2 (#4181)
-rw-r--r--test/test_utils.py6
-rw-r--r--youtube_dl/utils.py5
2 files changed, 7 insertions, 4 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index 0c11d0438..a9649397f 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -46,6 +46,7 @@ from youtube_dl.utils import (
escape_url,
js_to_json,
get_filesystem_encoding,
+ intlist_to_bytes,
)
@@ -350,5 +351,10 @@ class TestUtil(unittest.TestCase):
self.assertEqual(clean_html('a:\nb'), 'a: b')
self.assertEqual(clean_html('a:\n "b"'), 'a: "b"')
+ def test_intlist_to_bytes(self):
+ self.assertEqual(
+ intlist_to_bytes([0, 1, 127, 128, 255]),
+ b'\x00\x01\x7f\x80\xff')
+
if __name__ == '__main__':
unittest.main()
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index d87e212ae..0b2ba39e2 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -843,10 +843,7 @@ def bytes_to_intlist(bs):
def intlist_to_bytes(xs):
if not xs:
return b''
- if isinstance(chr(0), bytes): # Python 2
- return ''.join([chr(x) for x in xs])
- else:
- return bytes(xs)
+ return struct.pack('%dB' % len(xs), *xs)
# Cross-platform file locking