diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2014-11-13 15:28:42 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2014-11-13 15:28:42 +0100 | 
| commit | 4c0924bb24c32e18d1e3c030f8d1faef3c3c56c4 (patch) | |
| tree | 9c22b423ce39f53321f94955f1be4220c0bf5eb6 | |
| parent | 3fa5bb38028b38a6e65779f0b38407e6a46d15ea (diff) | |
[utils] Fix intlist_to_bytes in Python 2 (#4181)
| -rw-r--r-- | test/test_utils.py | 6 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 5 | 
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  | 
