Skip to main content

Include __traceback_info__ in tracebacks printed by nose

Project description

nose_traceback_info

Have you ever wanted supplemental (debugging) info included in an error or failure traceback produced by nose? Do you find that nose’s Failure Detail plugin fails you (for example, because you use PyHamcrest matchers)? Developing server software using Zope, Plone, Paste or WebError? Then this plugin might be the solution you’re looking for: it allows you to add whatever detailed information you want to any frame in your traceback. Turn a traceback like this:

Traceback (most recent call last):
File "/.../nti.nose_traceback_info/src/nti/nose_traceback_info/tests/test_nose_traceback_info.py", line 39, in test_format_failure
  t, formatted, _ = self.plugin.formatFailure(None, exc_info)
File "/.../nti.nose_traceback_info/src/nti/nose_traceback_info/__init__.py", line 48, in formatFailure
  return self.formatError( test, exc_info)
File "/.../nti.nose_traceback_info/src/nti/nose_traceback_info/__init__.py", line 31, in formatError
  t, v, tb = exc_info
TypeError: 'builtin_function_or_method' object is not iterable

into a traceback like this:

TypeError: Traceback (most recent call last):
Module unittest.case, line 331, in run
  testMethod()
Module nti.nose_traceback_info.tests.test_nose_traceback_info, line 39, in test_format_failure
  t, formatted, _ = self.plugin.formatFailure(None, exc_info)
  - __traceback_info__: ("calling plugin with test and exc_info", None, <build-in function exc_info>)
Module nti.nose_traceback_info, line 48, in formatFailure
  return self.formatError( test, exc_info)
Module nti.nose_traceback_info, line 31, in formatError
  t, v, tb = exc_info
  - __traceback_info__: ("Test and exc_info args", None, <built-in function exc_info>)
TypeError: 'builtin_function_or_method' object is not iterable

Usage

Once the plugin is installed (using pip or in a setup.py or requirements.txt file), it is enabled by default, just like logcapture. The plugin operates by looking for local variables in each frame in a traceback and formatting them (both in captured logs and tracebacks displayed for failured tests). The variables are defined by conventions developed (and documented) by Zope; these conventions are also followed by Paste and WebError, meaning that information added to help debug tests can also be used to debug production errors.

See that documentation for details on the variables. As a quick start, the most important and most commonly used variable is __traceback_info__, to which you can assign arbitrary information. The repr of __traceback_info__ is included in the traceback:

def formatError(self, test, exc_info):
    __traceback_info__ = "Test and exc_info args", test, exc_info
    t, v, tb = exc_info

Options

In addition to the standard environment variable and flags to enable the plugin, additional options control some behaviour.

--traceback-long-filenames

Use complete filenames, not module names, in formatted tracebacks.

--traceback-nologcapture

Do not format tracebacks captured in logs.

Other Plugins

This plugin is known to cooperate correctly with nose-progressive, which also adjusts the traceback.

Changes

1.0.2 (2015-04-21)

  • Add support for PyPy, Python 3.4 and Python 3.2.

1.0.1 (2013-12-14)

  • By default, show filenames instead of module names. This cooperates better with IDE test integration.

1.0.0 (2013-09-27)

Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nti.nose_traceback_info-1.0.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distributions

nti.nose_traceback_info-1.0.2-py3.4.egg (10.9 kB view details)

Uploaded Source

nti.nose_traceback_info-1.0.2-py2.py3-none-any.whl (9.7 kB view details)

Uploaded Python 2 Python 3

nti.nose_traceback_info-1.0.2-py2.7.egg (10.5 kB view details)

Uploaded Source

File details

Details for the file nti.nose_traceback_info-1.0.2.tar.gz.

File metadata

File hashes

Hashes for nti.nose_traceback_info-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7b90cf0117be9495367e287b2fe2744a895352c7548832fb42cac002b9fb6e9e
MD5 3be849f327d952de6f5fd0c61def85cf
BLAKE2b-256 27f3e00c7e87cc83b9efd8f3cd269aa4d39e25bf6924143187b34b2e0c667899

See more details on using hashes here.

File details

Details for the file nti.nose_traceback_info-1.0.2-py3.4.egg.

File metadata

File hashes

Hashes for nti.nose_traceback_info-1.0.2-py3.4.egg
Algorithm Hash digest
SHA256 e5c2c7be596c984b00833641693234c1e9a9daede1fc66e9725c89a09714a58c
MD5 930292f0fa9902a871f0c5841dc0c5d4
BLAKE2b-256 81f0c18a3a47337cf335dbfbc6e90d221eb23c04c05cd3c0756153918a81f5d3

See more details on using hashes here.

File details

Details for the file nti.nose_traceback_info-1.0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nti.nose_traceback_info-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b8789cd4847a09dcddc74688ea1b2fb8f862e220b50d160909de1deb2738933a
MD5 17fde95c41843dba42b468acf891c4ac
BLAKE2b-256 bf12d7f2a6682b5a0cedfb9cc20e4cf6982fdc6ce675318cf4675e889bb1fff9

See more details on using hashes here.

File details

Details for the file nti.nose_traceback_info-1.0.2-py2.7.egg.

File metadata

File hashes

Hashes for nti.nose_traceback_info-1.0.2-py2.7.egg
Algorithm Hash digest
SHA256 f9703414c1029de683accf70d9371d3ead46a44ad5d8302db30e251b15ff58d3
MD5 685ede3dbd47ff7a777017c076491d3c
BLAKE2b-256 30fdd289ec17c5b1cc1b68d636bbd2c183e7bcd7d32bf24cdbb8683e1e9a6c8c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page