如何检测何时有人更改了python dict(和/或对象)?

时间:2018-10-31 15:17:41

标签: python python-2.7

我们有一些单元测试(千分之几)正在修改pytest固定装置,这导致测试无故失败。我们正在运行pytest -n 8,并且测试执行的顺序对我们并不重要(越快越好),但是当这些行为异常的测试之一出现在依赖灯具那部分的东西之前时,我们就会得到一个随机的单元测试失败。

是否存在某种使对象/字典不可变的方法,或者在更改对象时引发异常的某种方法,以便我可以在行为中追究违法者?

我想保护这样的东西:

settings = load_settings(....)
settings = protect_settings(settings)

似乎有点像是对对象功能进行自省的模拟库,然后镜像实际的动作,并为设置的动作抛出一些异常。我希望它已经建立。

我们仍在使用python2.7:-(

1 个答案:

答案 0 :(得分:1)

有一个FrozeDict here的简单实现。您可以使用此方法,并且由于没有__setitem__方法而想要对其进行修改时,会出现错误。