# HG changeset patch # User Franz Glasner # Date 1741075302 -3600 # Node ID 16a5c337fcb9852474c3beba72cc5b625ed7ee62 # Parent 141a3aa0b403849efbab7fca9962e4be0eaf43fe FIX: peeking for byte strings on Python3 needs to convert from int to bytes diff -r 141a3aa0b403 -r 16a5c337fcb9 cutils/util/glob.py --- a/cutils/util/glob.py Tue Mar 04 01:52:18 2025 +0100 +++ b/cutils/util/glob.py Tue Mar 04 09:01:42 2025 +0100 @@ -220,4 +220,6 @@ if self._nch is not None: return self._nch self._nch = next(self._it, None) + if isinstance(self._nch, int): + self._nch = bytes((self._nch,)) return self._nch diff -r 141a3aa0b403 -r 16a5c337fcb9 tests/test_match.py --- a/tests/test_match.py Tue Mar 04 01:52:18 2025 +0100 +++ b/tests/test_match.py Tue Mar 04 09:01:42 2025 +0100 @@ -63,6 +63,16 @@ self.assertEqual("234", chars) self.assertIsNone(it.peek()) + def test_peek_from_second_with_bytes(self): + it = CharIter(b"1234") + self.assertEqual(b"1", it.peek()) + self.assertEqual(b"1", next(it)) + self.assertEqual(b"2", it.peek()) + self.assertEqual(b"2", it.peek()) # a second peek is idempotent + chars = b"".join(it) + self.assertEqual(b"234", chars) + self.assertIsNone(it.peek()) + class TestGlobToRegexp(unittest.TestCase):