[utils] Fix intlist_to_bytes in Python 2 (#4181)

This commit is contained in:
Philipp Hagemeister 2014-11-13 15:28:42 +01:00
parent 3fa5bb3802
commit 4c0924bb24
2 changed files with 7 additions and 4 deletions

View File

@ -46,6 +46,7 @@ from youtube_dl.utils import (
escape_url, escape_url,
js_to_json, js_to_json,
get_filesystem_encoding, 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:\nb'), 'a: b')
self.assertEqual(clean_html('a:\n "b"'), '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__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@ -843,10 +843,7 @@ def bytes_to_intlist(bs):
def intlist_to_bytes(xs): def intlist_to_bytes(xs):
if not xs: if not xs:
return b'' return b''
if isinstance(chr(0), bytes): # Python 2 return struct.pack('%dB' % len(xs), *xs)
return ''.join([chr(x) for x in xs])
else:
return bytes(xs)
# Cross-platform file locking # Cross-platform file locking