[utils] Fix intlist_to_bytes in Python 2 (#4181)
This commit is contained in:
		| @@ -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() | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister