【发布时间】:2019-03-21 10:07:57
【问题描述】:
在我从 Python 2 移植到 Python 3 的一些代码中,但仍然需要在两者上运行,我有类似的东西:
if six.PY2:
_text = widget.get_text().strip().decode('utf-8')
else:
_text = widget.get_text().strip()
因为 GTK-3 widget.get_text() 在 Python 2 中返回字节,在 Python 3 中返回 unicode。这是一个 PITA,因为我将 _text 传递给的方法需要 unicode。因此,在 Python 2 中,我必须解码我得到的任何数据。
我有模拟 widget.get_text 的单元测试,但很明显,这些单元测试运行在一个且只有一个版本的 Python 下。我可以在 Python 2 分支中添加 pragma: no test,但这感觉像是作弊。
所以,问题:
- 如何在没有编译指示的情况下使用上述获得 100% 的测试覆盖率。。
- 如何重构此代码以使我完全没有分支?
【问题讨论】:
标签: python python-3.x python-2.7 code-coverage gtk3