从HTMLTestRunner中删除has_key

时间:2015-03-15 15:25:26

标签: python python-2.7 python-3.x

我正在使用HTMLTestRunner为我的单元测试创​​建HTML报告。我认为提供的here HTMLTestRunner的代码是为python 2及之前编写和优化的,因为我有三个与python 3不兼容的错误,比如使用 StringIO而不是io

现在,第639行在此代码段中定义了has_key方法

def sortResult(self, result_list):
    # unittest does not seems to run in any particular order.
    # Here at least we want to group them together by class.
    rmap = {}
    classes = []
    for n,t,o,e in result_list:
        cls = t.__class__
        if not rmap.has_key(cls):
            rmap[cls] = []
            classes.append(cls)
        rmap[cls].append((n,t,o,e))
    r = [(cls, rmap[cls]) for cls in classes]
    return r

由于python 3已将has_keypython 3中移除,因此我收到有关此错误的错误。由于我对python不太熟悉,因此我搜索并发现in可能是一个合适的替代品。那么我该如何替换这个has_ key方法呢?我尝试将has key替换为in,但失败并出现无效的语法错误。

1 个答案:

答案 0 :(得分:1)

而不是

if not rmap.has_key(cls):

if cls not in rmap:

您可以查看docs了解详情。