22import unittest
33import sys
44import os
5- from io import StringIO
5+ from io import BytesIO
66import subprocess
77
88from distutils import cygwinccompiler
@@ -19,7 +19,8 @@ def __init__(self, cmd, shell, stdout):
1919 self .cmd = cmd .split ()[0 ]
2020 exes = self .test_class ._exes
2121 if self .cmd in exes :
22- self .stdout = StringIO (exes [self .cmd ])
22+ # issue #6438 in Python 3.x, Popen returns bytes
23+ self .stdout = BytesIO (exes [self .cmd ])
2324 else :
2425 self .stdout = os .popen (cmd , 'r' )
2526
@@ -87,30 +88,30 @@ def test_get_versions(self):
8788 self .assertEquals (get_versions (), (None , None , None ))
8889
8990 # Let's fake we have 'gcc' and it returns '3.4.5'
90- self ._exes ['gcc' ] = 'gcc (GCC) 3.4.5 (mingw special)\n FSF'
91+ self ._exes ['gcc' ] = b 'gcc (GCC) 3.4.5 (mingw special)\n FSF'
9192 res = get_versions ()
9293 self .assertEquals (str (res [0 ]), '3.4.5' )
9394
9495 # and let's see what happens when the version
9596 # doesn't match the regular expression
9697 # (\d+\.\d+(\.\d+)*)
97- self ._exes ['gcc' ] = 'very strange output'
98+ self ._exes ['gcc' ] = b 'very strange output'
9899 res = get_versions ()
99100 self .assertEquals (res [0 ], None )
100101
101102 # same thing for ld
102- self ._exes ['ld' ] = 'GNU ld version 2.17.50 20060824'
103+ self ._exes ['ld' ] = b 'GNU ld version 2.17.50 20060824'
103104 res = get_versions ()
104105 self .assertEquals (str (res [1 ]), '2.17.50' )
105- self ._exes ['ld' ] = '@(#)PROGRAM:ld PROJECT:ld64-77'
106+ self ._exes ['ld' ] = b '@(#)PROGRAM:ld PROJECT:ld64-77'
106107 res = get_versions ()
107108 self .assertEquals (res [1 ], None )
108109
109110 # and dllwrap
110- self ._exes ['dllwrap' ] = 'GNU dllwrap 2.17.50 20060824\n FSF'
111+ self ._exes ['dllwrap' ] = b 'GNU dllwrap 2.17.50 20060824\n FSF'
111112 res = get_versions ()
112113 self .assertEquals (str (res [2 ]), '2.17.50' )
113- self ._exes ['dllwrap' ] = 'Cheese Wrap'
114+ self ._exes ['dllwrap' ] = b 'Cheese Wrap'
114115 res = get_versions ()
115116 self .assertEquals (res [2 ], None )
116117
0 commit comments