From: Zac Medico Date: Wed, 11 Mar 2009 06:23:46 +0000 (-0000) Subject: Fix PipeReader and PipeReaderTestCase to work with binary strings in py3k. X-Git-Tag: v2.1.6.8~102 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=290d16343024beec673664ffb04e20ac106dd43d;p=portage.git Fix PipeReader and PipeReaderTestCase to work with binary strings in py3k. (trunk r12720) svn path=/main/branches/2.1.6/; revision=12975 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index a6332b4f6..43ed4196d 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1960,6 +1960,8 @@ class PipeReader(AbstractPollTask): def getvalue(self): """Retrieve the entire contents""" + if sys.hexversion >= 0x3000000: + return bytes().join(self._read_data) return "".join(self._read_data) def close(self): diff --git a/pym/portage/tests/process/test_poll.py b/pym/portage/tests/process/test_poll.py index 904930410..e399c479d 100644 --- a/pym/portage/tests/process/test_poll.py +++ b/pym/portage/tests/process/test_poll.py @@ -28,7 +28,7 @@ class PipeReaderTestCase(TestCase): test_string = 2 * "blah blah blah\n" master_fd, slave_fd = self._create_pipe() - master_file = os.fdopen(master_fd, 'r') + master_file = os.fdopen(master_fd, 'rb') task_scheduler = TaskScheduler(max_jobs=2) scheduler = task_scheduler.sched_iface @@ -52,4 +52,7 @@ class PipeReaderTestCase(TestCase): task_scheduler.run() + if sys.hexversion >= 0x3000000: + test_string = test_string.encode() + self._assertEqual(test_string, consumer.getvalue())