PHP 8.2.30
Preview: debug.py Size: 2.22 KB
/opt/hc_python/lib64/python3.12/site-packages/nose/plugins/debug.py

"""
This plugin provides ``--pdb`` and ``--pdb-failures`` options. The ``--pdb``
option will drop the test runner into pdb when it encounters an error. To
drop into pdb on failure, use ``--pdb-failures``.
"""

import pdb
from nose.plugins.base import Plugin

class Pdb(Plugin):
    """
    Provides --pdb and --pdb-failures options that cause the test runner to
    drop into pdb if it encounters an error or failure, respectively.
    """
    enabled_for_errors = False
    enabled_for_failures = False
    score = 5 # run last, among builtins
    
    def options(self, parser, env):
        """Register commandline options.
        """
        parser.add_option(
            "--pdb", action="store_true", dest="debugBoth",
            default=env.get('NOSE_PDB', False),
            help="Drop into debugger on failures or errors")
        parser.add_option(
            "--pdb-failures", action="store_true",
            dest="debugFailures",
            default=env.get('NOSE_PDB_FAILURES', False),
            help="Drop into debugger on failures")
        parser.add_option(
            "--pdb-errors", action="store_true",
            dest="debugErrors",
            default=env.get('NOSE_PDB_ERRORS', False),
            help="Drop into debugger on errors")

    def configure(self, options, conf):
        """Configure which kinds of exceptions trigger plugin.
        """
        self.conf = conf
        self.enabled_for_errors = options.debugErrors or options.debugBoth
        self.enabled_for_failures = options.debugFailures or options.debugBoth
        self.enabled = self.enabled_for_failures or self.enabled_for_errors

    def addError(self, test, err):
        """Enter pdb if configured to debug errors.
        """
        if not self.enabled_for_errors:
            return
        self.debug(err)

    def addFailure(self, test, err):
        """Enter pdb if configured to debug failures.
        """
        if not self.enabled_for_failures:
            return
        self.debug(err)

    def debug(self, err):
        import sys # FIXME why is this import here?
        ec, ev, tb = err
        stdout = sys.stdout
        sys.stdout = sys.__stdout__
        try:
            pdb.post_mortem(tb)
        finally:
            sys.stdout = stdout

Directory Contents

Dirs: 1 × Files: 22

Name Size Perms Modified Actions
- drwxr-xr-x 2025-04-04 08:01:56
Edit Download
1.68 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
9.48 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
25.45 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
1021 B lrw-r--r-- 2025-04-04 08:01:56
Edit Download
3.29 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
3.08 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
11.40 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
2.22 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
1.51 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
17.07 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
7.10 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
1.60 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
3.67 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
9.14 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
15.21 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
34.46 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
13.22 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
5.23 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
2.09 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
9.68 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
11.37 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download
6.14 KB lrw-r--r-- 2025-04-04 08:01:56
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).