Mercurial > p > roundup > code
view test/pytest_patcher.py @ 6296:6cf9f2f49b89
Fix UTC timezone test case if pytz not available; add tests
UTC is a special known timezone so it doesn't raise an exception even
if pytz is missing.
Added test case with bogus timezone that raises exception. Added
testcase for EST that is known with and without pytz.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 14 Dec 2020 21:25:56 -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
