Skip to content

Error with console output in Python 3.6 on Windows #103

@wheerd

Description

@wheerd

When running pytest in Python 3.6rc2 on Windows, there seems to be a problem with formatting the console output. The tests run fine until at some point it crashes because of a OSError: [WinError 87] The parameter is incorrect. This does not happen if I pipe the output into a file instead of having it in the console. I am not sure whether that is an issue with the py._io.TerminalWriter or something else. Since the 3.6 version is also not stable yet, so the issue might be there.

This is the trace back I am getting:

Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 98, in wrap_session
    session.exitstatus = doit(config, session) or 0
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 133, in _main
    config.hook.pytest_runtestloop(session=session)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 614, in execute
    res = hook_impl.function(*args)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 154, in pytest_runtestloop
    item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 613, in execute
    return _wrapped_call(hook_impl.function(*args), self.execute)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 254, in _wrapped_call
    return call_outcome.get_result()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 279, in get_result
    raise ex[1].with_traceback(ex[2])
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 265, in __init__
    self.result = func()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 614, in execute
    res = hook_impl.function(*args)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\runner.py", line 66, in pytest_runtest_protocol
    runtestprotocol(item, nextitem=nextitem)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\runner.py", line 79, in runtestprotocol
    reports.append(call_and_report(item, "call", log))
  File "C:\Program Files\Python36\lib\site-packages\_pytest\runner.py", line 137, in call_and_report
    hook.pytest_runtest_logreport(report=report)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 614, in execute
    res = hook_impl.function(*args)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 207, in pytest_runtest_logreport
    self.write_fspath_result(rep.nodeid, letter)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 123, in write_fspath_result
    self._tw.write(res)
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 207, in write
    write_out(self._file, markupmsg)
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 342, in write_out
    fil.write(msg)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 175, in write_plain_text
    self.wrapped.flush()
OSError: [WinError 87] The parameter is incorrect

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 111, in wrap_session
    config.notify_exception(excinfo, config.option)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\config.py", line 923, in notify_exception
    excinfo=excinfo)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 614, in execute
    res = hook_impl.function(*args)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 164, in pytest_internalerror
    self.write_line("INTERNALERROR> " + line)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 145, in write_line
    self.ensure_newline()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 136, in ensure_newline
    self._tw.line()
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 212, in line
    self.write('\n')
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 207, in write
    write_out(self._file, markupmsg)
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 342, in write_out
    fil.write(msg)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 174, in write_plain_text
    self.wrapped.write(text[start:end])
OSError: [WinError 87] The parameter is incorrect

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Program Files\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python36\lib\site-packages\pytest.py", line 17, in <module>
    raise SystemExit(pytest.main())
  File "C:\Program Files\Python36\lib\site-packages\_pytest\config.py", line 57, in main
    return config.hook.pytest_cmdline_main(config=config)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 614, in execute
    res = hook_impl.function(*args)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 127, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\main.py", line 122, in wrap_session
    exitstatus=session.exitstatus)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 745, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 339, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 334, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 613, in execute
    return _wrapped_call(hook_impl.function(*args), self.execute)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\vendored_packages\pluggy.py", line 250, in _wrapped_call
    wrap_controller.send(call_outcome)
  File "C:\Program Files\Python36\lib\site-packages\_pytest\terminal.py", line 359, in pytest_sessionfinish
    self._tw.line("")
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 212, in line
    self.write('\n')
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 207, in write
    write_out(self._file, markupmsg)
  File "C:\Program Files\Python36\lib\site-packages\py\_io\terminalwriter.py", line 342, in write_out
    fil.write(msg)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 174, in write_plain_text
    self.wrapped.write(text[start:end])
OSError: [WinError 87] The parameter is incorrect
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
OSError: [WinError 87] The parameter is incorrect

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions