我正在测试的文件中有以下代码。它检查WindowsError是否不存在,并将其重新定义为OSError的子类。在使用pdb调试我的应用程序时,WindowsError不是内置的,所以if语句即使在Windows计算机上也会返回true。
我如何用pdb测试这个文件?
if not getattr(__builtins__, "WindowsError", None):
class WindowsError(OSError): pass
class TestCases(unittest.TestCase)
def test_removefile(self):
try:
os.remove(fd.filePath)
except WindowsError as e:
if e.errno == 2: pass
else:
raise e
if __name__ == '__main__':
unittest.main()发布于 2016-12-21 02:34:07
此代码块将在Python调试器内部和正常执行期间工作:
import exceptions
if not getattr(exceptions, "WindowsError", None):
class WindowsError(OSError): pass此解决方案还可以工作并避免字符串文字和导入完整的异常库:
try:
from exceptions import WindowsError
except ImportError:
class WindowsError(OSError): passhttps://stackoverflow.com/questions/41247284
复制相似问题