Commits

holger krekel committed f8af400

fix issue129: tox now uses Popen(..., universal_newlines=True) to force
creation of unicode stdout/stderr streams. fixes a problem on specific
platform configs when creating virtualenvs with Python3.3. Thanks Jorgen Schäfer
or investigation and solution sketch.

  • Participants
  • Parent commits 88a503e

Comments (0)

Files changed (4)

 1.6.2.dev
 ---------
 
+- fix issue129: tox now uses Popen(..., universal_newlines=True) to force 
+  creation of unicode stdout/stderr streams.  fixes a problem on specific
+  platform configs when creating virtualenvs with Python3.3. Thanks Jorgen Schäfer
+  or investigation and solution sketch.
+
 - fix issue128: enable full substitution in install_command,
   thanks for the PR to Ronald Evers
 

File tox/_cmdline.py

         if cwd is None:
             # XXX cwd = self.session.config.cwd
             cwd = py.path.local()
-        popen = self._popen(args, cwd, env=env, stdout=f, stderr=STDOUT)
+        popen = self._popen(args, cwd, env=env,
+                            stdout=f, stderr=STDOUT)
         popen.outpath = outpath
         popen.args = [str(x) for x in args]
         popen.cwd = cwd
         if env is None:
             env = os.environ.copy()
         return self.session.popen(args, shell=False, cwd=str(cwd),
+            universal_newlines=True,
             stdout=stdout, stderr=stderr, env=env)
 
 

File tox/_pytestplugin.py

         def make_emptydir(self, path):
             pass
         def popen(self, args, cwd, shell=None,
+            universal_newlines=False,
             stdout=None, stderr=None, env=None):
             pm = pcallMock(args, cwd, env, stdout, stderr, shell)
             self._pcalls.append(pm)

File tox/_venv.py

         args = [self.envconfig.envpython, str(setup_py), '--name']
         output = action.popen(args, cwd=setupdir, redirect=False,
                               returnout=True)
-        name = output.strip().decode('utf-8')
+        name = output.strip()
         egg_info = setupdir.join('.'.join((name, 'egg-info')))
         for conf_file in (setup_py, setup_cfg):
             if (not egg_info.check() or (conf_file.check()