首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pdb时WindowsError内建项不存在

使用pdb时WindowsError内建项不存在
EN

Stack Overflow用户
提问于 2016-12-21 00:45:03
回答 1查看 35关注 0票数 0

我正在测试的文件中有以下代码。它检查WindowsError是否不存在,并将其重新定义为OSError的子类。在使用pdb调试我的应用程序时,WindowsError不是内置的,所以if语句即使在Windows计算机上也会返回true。

我如何用pdb测试这个文件?

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2016-12-21 02:34:07

此代码块将在Python调试器内部和正常执行期间工作:

代码语言:javascript
复制
import exceptions

if not getattr(exceptions, "WindowsError", None):
        class WindowsError(OSError): pass

此解决方案还可以工作并避免字符串文字和导入完整的异常库:

代码语言:javascript
复制
try:
    from exceptions import WindowsError
except ImportError:
    class WindowsError(OSError): pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41247284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档