tonybaloney / retox

For running a local continuous testing environment with tox
MIT License
75 stars 2 forks source link

Python 3 crashes #1

Closed tonybaloney closed 6 years ago

tonybaloney commented 6 years ago

I get this crazy error on Python 3, it seems to be asciimatics related, but their documentation says they support Python 3 so it must be something in retox

 ┌───────────────────────────── py27 ──────────────────────────────┐┌───────────────────────────── py36 ──────────────────────────────┐┌───────────────────────────── lint ──────────────────────────────┐┌──────────────────────────── pylint ─────────────────────────────┐
 │Running                                                          ││Running                                                          ││Running                                                          ││Running                                                          │
 │                                                                 █│                                                                 █│                                                                 █│                                                                 █
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                                 ░
 │Completed Get environment                                        ░│Completed Get environment                                        ░│Completed Get environment                                        ░│Completed Get environmentTraceback (most recent call last):      ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                             File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/eventlet/hubs/hub.py", line 458, in fire_timers                          ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                           timer()               ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                    File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/eventlet/hubs/timer.py", line 58, in __call__                                   ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                  cb(*args, **kw)                ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                   File "/Users/anthonyshaw/repo/retox-2/retox/reporter.py", line 67, in _loopreport  ░│                                                                 ░│                                                                 ░│                                                                 ░
 │                                                                   self.screen.draw_next_frame(repeat=False)                        ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                           File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 1457, in draw_next_frame                                    ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                 self.refresh()                  ░
 │                                                                 ░│                                                                 ░│                                                                 ░│                                                 File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2126, in refresh                                        ░│                                                                 ░│                                                                 ░
 │                                                                 ░│                             super(_CursesScreen, self).refresh()░│                                                                 ░│                                                                 ░
 │                                                                 ░│                                                                   File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 1217, in refresh                    ░
 │        Install Package                                          ░│        Install Package                                          ░│        Install Package                                          ░│        Install PackageTraceback (most recent call last):int_at(new_cell[0], x, y, new_cell[4])                                       ░│                                                                 ░│                                                                 ░│                                                           File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_mainics/screen.py", line 2256, in _print_at                                                         ││                                                                 │
 └─────────────────────────────────────────────────────────────────┘└────────────────────────────────────    "__main__", mod_spec)────┘└────────    self._safe_write(cursor + text)──────────────────────┘└─────────────────────────────────────────────────────────────────┘
                                                                                                                                    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_codesite-packages/asciimatics/screen.py", line 2084, in _safe_write                                                                                                                                                                                                                   exec(code, run_globals)
                               sys.stdout.write(msg)                                                                                                                                                                                                                   File "/Users/anthonyshaw/repo/retox-2/retox/__main__.py", line 86, in <module>onyshaw/repo/libcloud/bin/../lib/python3.6/codecs.py", line 377, in write
                                                                           main()                                                                   self.stream.write(data)
                                                                                   File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/click/core.py", line 722, in __call__nthonyshaw/repo/libcloud/bin/../lib/python3.6/codecs.py", line 376, in write
                                                                                                                                                                                               return self.main(*args, **kwargs)                                           data, consumed = self.encode(object, self.errors)                                                                                                                                                                                    File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/click/core.py", line 697, in main utf_8_encode() argument 1 must be str, not bytes
                                                            rv = self.invoke(ctx)                        Traceback (most recent call last):
                                                                                   File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/click/core.py", line 895, in invokeython3.6/site-packages/eventlet/greenpool.py", line 88, in _spawn_n_impl
                                                                                                                                                                                             return ctx.invoke(self.callback, **ctx.params)                          func(*args, **kwargs)                                                                                                                                                                                                                                 File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/click/core.py", line 535, in invoke, line 85, in runtests
 Commands : (q) quit (b) build                                           return callback(*args, **kwargs)xsession.installpkg(venv, sdist):
                                                                                                           File "/Users/anthonyshaw/repo/retox-2/retox/__main__.py", line 41, in mainb/python3.6/site-packages/tox/session.py", line 511, in installpkg
                                                                                                                                                                                         out = service.run(tox_args.envlist)                               return False
                                                                                                                                                                                                                              File "/Users/anthonyshaw/repo/retox-2/retox/service.py", line 49, in run/libcloud/lib/python3.6/site-packages/tox/session.py", line 97, in __exit__
                            retcode = self._toxsession._summary()                                      self.report.logaction_finish(self)
                                                                   File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/tox/session.py", line 598, in _summaryox-2/retox/reporter.py", line 78, in logaction_finish
                                                                                                                                                                                self.report.startsummary()                           self._env_screens[action.venv.name].stop(action.activity, action)                                                                                                                                                                                    File "/Users/anthonyshaw/repo/retox-2/retox/reporter.py", line 91, in startsummary          File "/Users/anthonyshaw/repo/retox-2/retox/ui.py", line 79, in stop
                    frame.finish(venv.status)                                                     self._screen.refresh()
                                               File "/Users/anthonyshaw/repo/retox-2/retox/ui.py", line 92, in finish     File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2126, in refresh
                                                                                                                         self._screen.refresh()                                                                                               super(_CursesScreen, self).refresh()                                                                                                                                             File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2126, in refresh
      File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 1217, in refresh                                                                                                                                               super(_CursesScreen, self).refresh()                                                                                               self._print_at(new_cell[0], x, y, new_cell[4])
                             File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 1216, in refresh                             File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2256, in _print_at                                                                                                                                   self._change_colours(new_cell[1], new_cell[2], new_cell[3])
                  self._safe_write(cursor + text)                                                                                                                                                             File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2222, in _change_colours"/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2084, in _safe_write
                                                            self._safe_write(self._a_normal)                                                                               sys.stdout.write(msg)
                                                                                              File "/Users/anthonyshaw/repo/libcloud/lib/python3.6/site-packages/asciimatics/screen.py", line 2084, in _safe_writehonyshaw/repo/libcloud/bin/../lib/python3.6/codecs.py", line 377, in write                                                                                                                                                                                                        sys.stdout.write(msg)
                  self.stream.write(data)                                                                                                                                                                                                    File "/Users/anthonyshaw/repo/libcloud/bin/../lib/python3.6/codecs.py", line 377, in write() argument must be str, not bytes
                                                             self.stream.write(data)
                                                                                      File "/Users/anthonyshaw/repo/libcloud/bin/../lib/python3.6/codecs.py", line 376, in write
                                                                                                                                                                                    data, consumed = self.encode(object, self.errors)
                                                                                                                                                                                                                                     TypeError: utf_8_encode() argument 1 must be str, not bytes
tonybaloney commented 6 years ago

Tracked down to the _change_colour method inside asciimatics causing the issue. The stdout.write method is being sent bytes instead of a str.

tonybaloney commented 6 years ago

Raised related https://github.com/peterbrittain/asciimatics/issues/129

tonybaloney commented 6 years ago

After discussion with the asciimatics team, it is not a problem with asciimatics, that is a red-herring.

Noticed this issue in the Tox queue which is the exact issue I'm having. Except I've redirected tw to my own mock interface, so I can't see why it's trying to write anything to the console anyway. https://github.com/tox-dev/tox/issues/426

tonybaloney commented 6 years ago

Summarising the Tox bug discussion, this is fixed if you don't try and run badly configured environments from Python 3 virtualenv. So, if anyone else hit's this issue, try specifying -e py27,py36 as the environments, instead of trying to build all and see if that fixes it.

tonybaloney commented 6 years ago

Resolved in 1.3.0, related to unicode formatting of substrings

pquentin commented 6 years ago

I've been following the bug and would be interested to understand what the actual issue was? Why can't we have nice things like ✓ and ✗? Was it a bug in Python 3.6 itself? Was it important to read the code of the standard library? Thanks!

tonybaloney commented 6 years ago

I can reverse the fix so I guess that counts as squashing the bug! From future import Unicode literals is a bad idea. That is the gist of it

bstpierre commented 6 years ago

I'm hitting what looks like the same or very similar issue with retox-1.3.1, tox-2.9.1, and python-3.5.2

  File "/home/brian/.virtualenvs/mypy/bin/retox", line 11, in <module>
    sys.exit(main())
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/__main__.py", line 86, in main
    screen.clear()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1231, in clear
    self._change_colours(Screen.COLOUR_WHITE, 0, 0)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2222, in _change_colours
    self._safe_write(self._a_normal)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly
tonybaloney commented 6 years ago

@bstpierre can you share your tox.ini file, try specifying only a specific python version with -e and also share your log

bstpierre commented 6 years ago

It doesn't crash if I use retox -e py35.

tox.ini:

envlist = py35, style, docs

[testenv]
setenv =
    PYTHONPATH = {toxinidir}:{toxinidir}/deploy
deps =
    -r{toxinidir}/requirements.txt
    pytest
commands =
    py.test --basetemp={envtmpdir}

[testenv:style]
deps =
    -r{toxinidir}/requirements.txt
    flake8
commands =
    flake8 {toxinidir}/test/
    flake8 deploy/

[testenv:docs]
changedir=docs/
deps =
    -r{toxinidir}/requirements.txt
    sphinx
commands =
    sphinx-build -b html ./ _build/

retox.log from a failed run, via rm -rf .tox retox.log; retox


 ---- Starting new test run ----
tox: py35 create: /home/brian/projects/deploy/.tox/py35
tox: GLOB sdist-make: /home/brian/projects/deploy/setup.py
tox: style create: /home/brian/projects/deploy/.tox/style
tox: docs create: /home/brian/projects/deploy/.tox/docs
tox: py35 installdeps: -r/home/brian/projects/deploy/requirements.txt, pytest
tox: style installdeps: -r/home/brian/projects/deploy/requirements.txt, flake8
tox: docs installdeps: -r/home/brian/projects/deploy/requirements.txt, sphinx
!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 67, in logaction_start
    self.env_frames[action.venv.name].start(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 244, in start
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
TypeError: write() argument must be str, not bytes

tox: style inst: /home/brian/projects/deploy/.tox/dist/deploy-0.1.0.zip
tox: py35 inst: /home/brian/projects/deploy/.tox/dist/deploy-0.1.0.zip
!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 74, in logaction_finish
    self.env_frames[action.venv.name].stop(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 261, in stop
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
TypeError: write() argument must be str, not bytes

!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 67, in logaction_start
    self.env_frames[action.venv.name].start(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 244, in start
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
TypeError: write() argument must be str, not bytes

tox: style runtests: PYTHONHASHSEED='183929229'
tox: style runtests: commands[0] | flake8 /home/brian/projects/deploy/test/
tox: py35 runtests: PYTHONHASHSEED='183929229'
tox: py35 runtests: commands[0] | py.test --basetemp=/home/brian/projects/deploy/.tox/py35/tmp
tox: style runtests: commands[1] | flake8 deploy/
!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 75, in logaction_finish
    super(RetoxReporter, self).logaction_finish(action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/tox/session.py", line 262, in logaction_finish
    duration = time.time() - action._starttime
AttributeError: 'Action' object has no attribute '_starttime'

!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 74, in logaction_finish
    self.env_frames[action.venv.name].stop(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 261, in stop
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly

!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 67, in logaction_start
    self.env_frames[action.venv.name].start(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 244, in start
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly

tox: docs inst: /home/brian/projects/deploy/.tox/dist/deploy-0.1.0.zip
!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 74, in logaction_finish
    self.env_frames[action.venv.name].stop(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 261, in stop
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly

!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 67, in logaction_start
    self.env_frames[action.venv.name].start(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 244, in start
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly

tox: docs runtests: PYTHONHASHSEED='183929229'
tox: docs runtests: commands[0] | sphinx-build -b html ./ _build/
!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/log.py", line 12, in wrapper
    return f(*args, **kwds)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/reporter.py", line 74, in logaction_finish
    self.env_frames[action.venv.name].stop(action.activity, action)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 261, in stop
    self.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/ui.py", line 61, in refresh
    self._screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly

!!!!!! Process crash !!!!!!!
Traceback (most recent call last):
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/__main__.py", line 53, in main
    out = service.run(tox_args.envlist)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/retox/service.py", line 60, in run
    self.screen.refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2126, in refresh
    super(_CursesScreen, self).refresh()
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 1217, in refresh
    self._print_at(new_cell[0], x, y, new_cell[4])
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2256, in _print_at
    self._safe_write(cursor + text)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/site-packages/asciimatics/screen.py", line 2084, in _safe_write
    sys.stdout.write(msg)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 377, in write
    self.stream.write(data)
  File "/home/brian/.virtualenvs/mypy/lib/python3.5/codecs.py", line 376, in write
    data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'bytes' object to str implicitly
tonybaloney commented 6 years ago

See https://github.com/tonybaloney/retox/pull/12 for tests to recreate the issue

tonybaloney commented 6 years ago

Finally figured it out credit to @peterbrittain - raised bug report in Tox https://github.com/tox-dev/tox/issues/723

tonybaloney commented 6 years ago

Issue raised in tox. Code update submitted in https://github.com/tox-dev/tox/pull/724 and merged into master. Expected in 2.9.2 release

tonybaloney commented 6 years ago

Fixed