view test/pytest_patcher.py @ 8478:ed4ef394d5d6

doc: initial attempt to document setup of pgp support for email. Used an AI assistant to help write this. Basic gpg commands seem to work, but I have not tested this totally. Docs basically follow the setup used for pgp testing in the test suite. It looks like roundup accepts signed emails as well as encrypted and signed emails. But it does not generate signed emails. Also it looks like there is no PGP support for alternate email addresses. Only primary addresses can do PGP emails.
author John Rouillard <rouilj@ieee.org>
date Sat, 15 Nov 2025 16:59:24 -0500
parents 1c94afabb2cb
children
line wrap: on
line source

"""
The following code was taken from:

    https://github.com/pytest-dev/pytest/issues/568#issuecomment-216569420

to resolve a bug with using pytest.mark.skip(). Once the bug is resolved in
pytest this file can be removed along with all the wrapper mark_class()
references in the other test files.
"""
import types


def mark_class(marker):
    '''Workaround for https://github.com/pytest-dev/pytest/issues/568'''
    def copy_func(f):
        try:
            return types.FunctionType(f.__code__, f.__globals__,
                                      name=f.__name__, argdefs=f.__defaults__,
                                      closure=f.__closure__)
        except AttributeError:
            return types.FunctionType(f.func_code, f.func_globals,
                                      name=f.func_name,
                                      argdefs=f.func_defaults,
                                      closure=f.func_closure)

    def mark(cls):
        if isinstance(cls, types.FunctionType):
            return marker(copy_func(cls))

        for method in dir(cls):
            if method.startswith('test'):
                f = copy_func(getattr(cls, method))
                setattr(cls, method, marker(f))
        return cls
    return mark

Roundup Issue Tracker: http://roundup-tracker.org/