From: Zac Medico Date: Fri, 27 Feb 2009 02:43:45 +0000 (-0000) Subject: Fix PipeReader and PipeReaderTestCase to work with binary strings in py3k. X-Git-Tag: v2.2_rc24~95 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=57aaae1ce3f340badc57404b10179836539720e6;p=portage.git Fix PipeReader and PipeReaderTestCase to work with binary strings in py3k. svn path=/main/trunk/; revision=12720 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 0dd1070b2..83186a91e 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1979,6 +1979,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())