[Pytest-commit] Issue #264: Non-ascii environment variables causes tox script to fail (hpk42/tox)

Delano Rodgers issues-reply at bitbucket.org
Sat Jul 11 16:22:49 CEST 2015


New issue 264: Non-ascii environment variables causes tox script to fail
https://bitbucket.org/hpk42/tox/issues/264/non-ascii-environment-variables-causes-tox

Delano Rodgers:

-----
Tox version: 2.1.1
Python version: 3.4
OS: Windows 8.1
-----

When running to tox script, I get this error:

```
Traceback (most recent call last):
  File "C:\Python34\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python34\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Dev\testenv\Scripts\tox.exe\__main__.py", line 9, in <module>
  File "C:\Dev\testenv\lib\site-packages\tox\session.py", line 39, in main
    retcode = Session(config).runcommand()
  File "C:\Dev\testenv\lib\site-packages\tox\session.py", line 373, in runcommand
    return self.subcommand_test()
  File "C:\Dev\testenv\lib\site-packages\tox\session.py", line 530, in subcommand_test
    self.installpkg(venv, path)
  File "C:\Dev\testenv\lib\site-packages\tox\session.py", line 473, in installpkg
    venv.installpkg(path, action)
  File "C:\Dev\testenv\lib\site-packages\tox\venv.py", line 240, in installpkg
    self._install([sdistpath], extraopts=extraopts, action=action)
  File "C:\Dev\testenv\lib\site-packages\tox\venv.py", line 304, in _install
    action=action)
  File "C:\Dev\testenv\lib\site-packages\tox\venv.py", line 277, in run_install_command
    self._pcall(argv, cwd=self.envconfig.config.toxinidir, action=action)
  File "C:\Dev\testenv\lib\site-packages\tox\venv.py", line 375, in _pcall
    redirect=redirect, ignore_ret=ignore_ret)
  File "C:\Dev\testenv\lib\site-packages\tox\session.py", line 123, in popen
    self.id, self.msg, args, env))
  File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd' in position 2486: character maps to <undefined>
```

However, when I add this code just before the last line in the _pcall function in venv.py, the script runs successfully:

```
#!python

for k,v in env.items():
    try:
        v.encode('ascii')
    except UnicodeEncodeError:
        env[k] =  v.encode('ascii', errors='ignore').decode('ascii')
```

thus leading me to believe that tox isn't liking the non-ascii characters in some of my environment variables. 

Are there any workarounds for this?




More information about the pytest-commit mailing list