From 05b6c96f17faaf52c24980f4af25e03ea1467fd9 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Wed, 19 Oct 2022 10:30:19 -0400 Subject: [PATCH] use module __getattr__ for py.error to fix doctesting --- src/_pytest/_py/error.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/_pytest/_py/error.py b/src/_pytest/_py/error.py index c427ee5f599..1f33c5aadbe 100644 --- a/src/_pytest/_py/error.py +++ b/src/_pytest/_py/error.py @@ -5,7 +5,6 @@ import errno import os import sys -from types import ModuleType class Error(EnvironmentError): @@ -39,7 +38,7 @@ def __str__(self): } -class ErrorMaker(ModuleType): +class ErrorMaker: """lazily provides Exception classes for each possible POSIX errno (as defined per the 'errno' module). All such instances subclass EnvironmentError. @@ -97,5 +96,8 @@ def checked_call(self, func, *args, **kwargs): __tracebackhide__ = True -error = ErrorMaker("_pytest._py.error") -sys.modules[error.__name__] = error +_error_maker = ErrorMaker() + + +def __getattr__(attr): + return getattr(_error_maker, attr)