Here's how GITHUB.COM makes money* and how much!

*Please read our disclaimer before using our estimates.
Loading...

GITHUB . COM {}

Detected CMS Systems:

  1. Analyzed Page
  2. Matching Content Categories
  3. CMS
  4. Monthly Traffic Estimate
  5. How Does Github.com Make Money
  6. How Much Does Github.com Make
  7. Wordpress Themes And Plugins
  8. Keywords
  9. Topics
  10. Payment Methods
  11. Questions
  12. Schema
  13. External Links
  14. Analytics And Tracking
  15. Libraries
  16. Hosting Providers

We are analyzing https://github.com/pytest-dev/pytest/issues/2731.

Title:
INTERNALERROR (UnicodeDecodeError): ReprFuncArgs don't handle mixed unicode and utf-8 strings on the same call Β· Issue #2731 Β· pytest-dev/pytest
Description:
Versions: Python 2.7.13 pytest==3.2.1 Linux L251 4.4.0-92-generic #115-Ubuntu x86_64 x86_64 x86_64 GNU/Linux The class _pytest._code.code.ReprFuncArgs crashes with UnicodeDecodeError when trying to write args with mixed unicode and utf-8...
Website Age:
17 years and 8 months (reg. 2007-10-09).

Matching Content Categories {πŸ“š}

  • Personal Finance
  • Technology & Computing
  • Video & Online Content

Content Management System {πŸ“}

What CMS is github.com built with?


Github.com operates using WORDPRESS.

Traffic Estimate {πŸ“ˆ}

What is the average monthly size of github.com audience?

πŸš€πŸŒ  Tremendous Traffic: 10M - 20M visitors per month


Based on our best estimate, this website will receive around 10,000,019 visitors per month in the current month.
However, some sources were not loaded, we suggest to reload the page to get complete results.

check SE Ranking
check Ahrefs
check Similarweb
check Ubersuggest
check Semrush

How Does Github.com Make Money? {πŸ’Έ}


Subscription Packages {πŸ’³}

We've located a dedicated page on github.com that might include details about subscription plans or recurring payments. We identified it based on the word pricing in one of its internal links. Below, you'll find additional estimates for its monthly recurring revenues.

How Much Does Github.com Make? {πŸ’°}


Subscription Packages {πŸ’³}

Prices on github.com are in US Dollars ($). They range from $4.00/month to $21.00/month.
We estimate that the site has approximately 4,989,889 paying customers.
The estimated monthly recurring revenue (MRR) is $20,957,532.
The estimated annual recurring revenues (ARR) are $251,490,385.

Wordpress Themes and Plugins {🎨}

What WordPress theme does this site use?

It is strange but we were not able to detect any theme on the page.

What WordPress plugins does this website use?

It is strange but we were not able to detect any plugins on the page.

Keywords {πŸ”}

internalerror, line, file, usrlocallibpythondistpackagespytestvendoredpackagespluggypy, return, kwargs, linesofar, call, usrlocallibpythondistpackagespytestcodecodepy, unicode, utf, reprfuncargs, fgmacedo, args, mixed, unicodedecodeerror, def, execute, remote, exec, toterminal, issue, pytestdev, selfhookexecself, selfnonwrappers, selfwrappers, hookexec, selfinnerhookexechook, methods, lambda, multicallmethods, hookspecoptsexecute, res, hookimplfunctionargs, usrlocallibpythondistpackagespytestrunnerpy, bug, selfargs, added, sign, class, import, paulo, decode, usrlocallibpythondistpackagespytestmainpy, diff, fixes, nicoddemus, type, projects, strings,

Topics {βœ’οΈ}

7/dist-packages/_pytest/vendored_packages/pluggy 7/site-packages/_pytest/_code/code 7/dist-packages/_pytest/_code/code virtualenvs/pytest-error/lib/python2 7/dist-packages/_pytest/main 7/dist-packages/_pytest/runner /usr/local/lib/python2 /_pytest/_code/code activity fgmacedo added user-facing messages comment metadata assignees personal information internalerror xc3\xa3o paulo' assigned labels topic decode byte 0xc3 bug fix reprfuncargs type projects compat import safe_decode handle mixed unicode projects milestone function named safe_str py index 0230c56 py index 45f9f86 def test_repr class _pytest /_pytest/compat open mockterminalwritter object utf-8 args utf-8 strings def getrawcode reprfuncargs crashes quick fix +def safe_decode 13 pytest==3 'sΓ£o paulo' mixed unicode code _pytest errors type addressed type bug problem write args 'ascii' codec actual traceback recent call exitstatus = doit session=session result = func nextitem=nextitem

Payment Methods {πŸ“Š}

  • Braintree

Questions {❓}

  • Already have an account?

Schema {πŸ—ΊοΈ}

DiscussionForumPosting:
      context:https://schema.org
      headline:INTERNALERROR (UnicodeDecodeError): ReprFuncArgs don't handle mixed unicode and utf-8 strings on the same call
      articleBody:Versions: Python 2.7.13 pytest==3.2.1 Linux L251 4.4.0-92-generic #115-Ubuntu x86_64 x86_64 x86_64 GNU/Linux The class `_pytest._code.code.ReprFuncArgs` crashes with `UnicodeDecodeError` when trying to write args with mixed `unicode` and `utf-8` strings. There's a test that reproduces the bug: ``` python # coding: utf-8 class MockTerminalWritter(object): fullwidth = 80 def __init__(self): self.lines = [] def line(self, line): self.lines.append(line) def test_repr(): from _pytest._code.code import ReprFuncArgs tw = MockTerminalWritter() args = [ ('unicode_string', u"'SΓ£o Paulo'"), ('utf8_string', 'S\xc3\xa3o Paulo'), ] r = ReprFuncArgs(args) r.toterminal(tw) ``` Resulting in: ``` _______________________________ test_repr _____________________________________ def test_repr(): from _pytest._code.code import ReprFuncArgs tw = MockTerminalWritter() args = [ ('unicode_string', u"'SΓ£o Paulo'"), ('utf8_string', 'S\xc3\xa3o Paulo'), ] r = ReprFuncArgs(args) > r.toterminal(tw) test_pytestunicode.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <<class '_pytest._code.code.ReprFuncArgs'> instance at 7fb056317d50>, tw = <test_pytestunicode.MockTerminalWritter object at 0x7fb056317f10> def toterminal(self, tw): if self.args: linesofar = "" for name, value in self.args: ns = "%s = %s" % (name, value) if len(ns) + len(linesofar) + 2 > tw.fullwidth: if linesofar: tw.line(linesofar) linesofar = ns else: if linesofar: > linesofar += ", " + ns E UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) ../../.virtualenvs/pytest-error/lib/python2.7/site-packages/_pytest/_code/code.py:873: UnicodeDecodeError ``` Here the actual traceback of the error when the used by running our tests: ``` INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 98, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 133, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 61, in pytest_runtestloop INTERNALERROR> File "<remote exec>", line 77, in run_tests INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 613, in execute INTERNALERROR> return _wrapped_call(hook_impl.function(*args), self.execute) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 254, in _wrapped_call INTERNALERROR> return call_outcome.get_result() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 280, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 265, in __init__ INTERNALERROR> self.result = func() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 66, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 79, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 137, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 89, in pytest_runtest_logreport INTERNALERROR> File "<remote exec>", line 103, in serialize_report INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 654, in __str__ INTERNALERROR> s = self.__unicode__() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 664, in __unicode__ INTERNALERROR> self.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 709, in toterminal INTERNALERROR> self.reprtraceback.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 725, in toterminal INTERNALERROR> entry.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 769, in toterminal INTERNALERROR> self.reprfuncargs.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 826, in toterminal INTERNALERROR> linesofar += ", " + ns INTERNALERROR> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 98, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 133, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 61, in pytest_runtestloop INTERNALERROR> File "<remote exec>", line 77, in run_tests INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 613, in execute INTERNALERROR> return _wrapped_call(hook_impl.function(*args), self.execute) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 254, in _wrapped_call INTERNALERROR> return call_outcome.get_result() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 280, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 265, in __init__ INTERNALERROR> self.result = func() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 66, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 79, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 137, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 89, in pytest_runtest_logreport INTERNALERROR> File "<remote exec>", line 103, in serialize_report INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 654, in __str__ INTERNALERROR> s = self.__unicode__() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 664, in __unicode__ INTERNALERROR> self.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 709, in toterminal INTERNALERROR> self.reprtraceback.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 725, in toterminal INTERNALERROR> entry.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 769, in toterminal INTERNALERROR> self.reprfuncargs.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 826, in toterminal INTERNALERROR> linesofar += ", " + ns INTERNALERROR> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) ``` Here's a quick fix (diff): ``` diff diff --git a/_pytest/_code/code.py b/_pytest/_code/code.py index 0230c56..d5c1dca 100644 --- a/_pytest/_code/code.py +++ b/_pytest/_code/code.py @@ -860,22 +860,23 @@ class ReprFuncArgs(TerminalRepr): self.args = args def toterminal(self, tw): + from _pytest.compat import safe_decode if self.args: - linesofar = "" + linesofar = u"" for name, value in self.args: - ns = "%s = %s" % (name, value) + ns = u"%s = %s" % (safe_decode(name), safe_decode(value)) if len(ns) + len(linesofar) + 2 > tw.fullwidth: if linesofar: tw.line(linesofar) linesofar = ns else: if linesofar: - linesofar += ", " + ns + linesofar += u", " + ns else: linesofar = ns if linesofar: tw.line(linesofar) - tw.line("") + tw.line(u"") def getrawcode(obj, trycall=True): diff --git a/_pytest/compat.py b/_pytest/compat.py index 45f9f86..a8b001b 100644 --- a/_pytest/compat.py +++ b/_pytest/compat.py @@ -258,6 +258,19 @@ else: return v.encode('utf-8', errors) +def safe_decode(v): + import locale + if hasattr(v, 'decode'): + encoding = locale.getpreferredencoding() + try: + v = v.decode(encoding) + except UnicodeDecodeError: + encoding = 'utf-8' + v = v.decode(encoding, errors='replace') + + return v + + COLLECT_FAKEMODULE_ATTRIBUTES = ( 'Collector', 'Module', ``` Please let me know if I should open a PR.
      author:
         url:https://github.com/fgmacedo
         type:Person
         name:fgmacedo
      datePublished:2017-08-29T20:32:39.000Z
      interactionStatistic:
         type:InteractionCounter
         interactionType:https://schema.org/CommentAction
         userInteractionCount:2
      url:https://github.com/2731/pytest/issues/2731
      context:https://schema.org
      headline:INTERNALERROR (UnicodeDecodeError): ReprFuncArgs don't handle mixed unicode and utf-8 strings on the same call
      articleBody:Versions: Python 2.7.13 pytest==3.2.1 Linux L251 4.4.0-92-generic #115-Ubuntu x86_64 x86_64 x86_64 GNU/Linux The class `_pytest._code.code.ReprFuncArgs` crashes with `UnicodeDecodeError` when trying to write args with mixed `unicode` and `utf-8` strings. There's a test that reproduces the bug: ``` python # coding: utf-8 class MockTerminalWritter(object): fullwidth = 80 def __init__(self): self.lines = [] def line(self, line): self.lines.append(line) def test_repr(): from _pytest._code.code import ReprFuncArgs tw = MockTerminalWritter() args = [ ('unicode_string', u"'SΓ£o Paulo'"), ('utf8_string', 'S\xc3\xa3o Paulo'), ] r = ReprFuncArgs(args) r.toterminal(tw) ``` Resulting in: ``` _______________________________ test_repr _____________________________________ def test_repr(): from _pytest._code.code import ReprFuncArgs tw = MockTerminalWritter() args = [ ('unicode_string', u"'SΓ£o Paulo'"), ('utf8_string', 'S\xc3\xa3o Paulo'), ] r = ReprFuncArgs(args) > r.toterminal(tw) test_pytestunicode.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <<class '_pytest._code.code.ReprFuncArgs'> instance at 7fb056317d50>, tw = <test_pytestunicode.MockTerminalWritter object at 0x7fb056317f10> def toterminal(self, tw): if self.args: linesofar = "" for name, value in self.args: ns = "%s = %s" % (name, value) if len(ns) + len(linesofar) + 2 > tw.fullwidth: if linesofar: tw.line(linesofar) linesofar = ns else: if linesofar: > linesofar += ", " + ns E UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) ../../.virtualenvs/pytest-error/lib/python2.7/site-packages/_pytest/_code/code.py:873: UnicodeDecodeError ``` Here the actual traceback of the error when the used by running our tests: ``` INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 98, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 133, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 61, in pytest_runtestloop INTERNALERROR> File "<remote exec>", line 77, in run_tests INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 613, in execute INTERNALERROR> return _wrapped_call(hook_impl.function(*args), self.execute) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 254, in _wrapped_call INTERNALERROR> return call_outcome.get_result() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 280, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 265, in __init__ INTERNALERROR> self.result = func() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 66, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 79, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 137, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 89, in pytest_runtest_logreport INTERNALERROR> File "<remote exec>", line 103, in serialize_report INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 654, in __str__ INTERNALERROR> s = self.__unicode__() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 664, in __unicode__ INTERNALERROR> self.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 709, in toterminal INTERNALERROR> self.reprtraceback.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 725, in toterminal INTERNALERROR> entry.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 769, in toterminal INTERNALERROR> self.reprfuncargs.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 826, in toterminal INTERNALERROR> linesofar += ", " + ns INTERNALERROR> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 98, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/main.py", line 133, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 61, in pytest_runtestloop INTERNALERROR> File "<remote exec>", line 77, in run_tests INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 613, in execute INTERNALERROR> return _wrapped_call(hook_impl.function(*args), self.execute) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 254, in _wrapped_call INTERNALERROR> return call_outcome.get_result() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 280, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 265, in __init__ INTERNALERROR> self.result = func() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 66, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 79, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/runner.py", line 137, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "<remote exec>", line 89, in pytest_runtest_logreport INTERNALERROR> File "<remote exec>", line 103, in serialize_report INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 654, in __str__ INTERNALERROR> s = self.__unicode__() INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 664, in __unicode__ INTERNALERROR> self.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 709, in toterminal INTERNALERROR> self.reprtraceback.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 725, in toterminal INTERNALERROR> entry.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 769, in toterminal INTERNALERROR> self.reprfuncargs.toterminal(tw) INTERNALERROR> File "/usr/local/lib/python2.7/dist-packages/_pytest/_code/code.py", line 826, in toterminal INTERNALERROR> linesofar += ", " + ns INTERNALERROR> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128) ``` Here's a quick fix (diff): ``` diff diff --git a/_pytest/_code/code.py b/_pytest/_code/code.py index 0230c56..d5c1dca 100644 --- a/_pytest/_code/code.py +++ b/_pytest/_code/code.py @@ -860,22 +860,23 @@ class ReprFuncArgs(TerminalRepr): self.args = args def toterminal(self, tw): + from _pytest.compat import safe_decode if self.args: - linesofar = "" + linesofar = u"" for name, value in self.args: - ns = "%s = %s" % (name, value) + ns = u"%s = %s" % (safe_decode(name), safe_decode(value)) if len(ns) + len(linesofar) + 2 > tw.fullwidth: if linesofar: tw.line(linesofar) linesofar = ns else: if linesofar: - linesofar += ", " + ns + linesofar += u", " + ns else: linesofar = ns if linesofar: tw.line(linesofar) - tw.line("") + tw.line(u"") def getrawcode(obj, trycall=True): diff --git a/_pytest/compat.py b/_pytest/compat.py index 45f9f86..a8b001b 100644 --- a/_pytest/compat.py +++ b/_pytest/compat.py @@ -258,6 +258,19 @@ else: return v.encode('utf-8', errors) +def safe_decode(v): + import locale + if hasattr(v, 'decode'): + encoding = locale.getpreferredencoding() + try: + v = v.decode(encoding) + except UnicodeDecodeError: + encoding = 'utf-8' + v = v.decode(encoding, errors='replace') + + return v + + COLLECT_FAKEMODULE_ATTRIBUTES = ( 'Collector', 'Module', ``` Please let me know if I should open a PR.
      author:
         url:https://github.com/fgmacedo
         type:Person
         name:fgmacedo
      datePublished:2017-08-29T20:32:39.000Z
      interactionStatistic:
         type:InteractionCounter
         interactionType:https://schema.org/CommentAction
         userInteractionCount:2
      url:https://github.com/2731/pytest/issues/2731
Person:
      url:https://github.com/fgmacedo
      name:fgmacedo
      url:https://github.com/fgmacedo
      name:fgmacedo
InteractionCounter:
      interactionType:https://schema.org/CommentAction
      userInteractionCount:2
      interactionType:https://schema.org/CommentAction
      userInteractionCount:2

Analytics and Tracking {πŸ“Š}

  • Site Verification - Google

Libraries {πŸ“š}

  • Clipboard.js
  • D3.js
  • Lodash

Emails and Hosting {βœ‰οΈ}

Mail Servers:

  • aspmx.l.google.com
  • alt1.aspmx.l.google.com
  • alt2.aspmx.l.google.com
  • alt3.aspmx.l.google.com
  • alt4.aspmx.l.google.com

Name Servers:

  • dns1.p08.nsone.net
  • dns2.p08.nsone.net
  • dns3.p08.nsone.net
  • dns4.p08.nsone.net
  • ns-1283.awsdns-32.org
  • ns-1707.awsdns-21.co.uk
  • ns-421.awsdns-52.com
  • ns-520.awsdns-01.net
9.25s.