【发布时间】:2019-12-14 05:37:17
【问题描述】:
源代码
我有一些代码要求我调用一个属性设置器来测试一个类的锁定功能是否正常工作(该类的一些函数是async,要求在它们执行期间设置一个挂锁布尔值) .如果已为实例设置了锁,则已编写 setter 以引发 RuntimeError。
代码如下:
@filename.setter
def filename(self, value):
if not self.__padlock:
self.__filename = value
else:
self.__events.on_error("data_store is locked. you should be awaiting safe_unlock if you wish to "
"change the source.")
正如您在此处看到的,如果 self.__padlock 是 True,则会引发 RuntimeError。尝试使用 python unittest 断言设置器时会出现问题。
问题
unittest 似乎缺少断言属性设置器是否引发异常所需的功能。
尝试使用assertRaises 显然不起作用:
# Non-working concept
self.assertRaises(RuntimeError, my_object.filename, "testfile.txt")
问题
如何断言类的属性设置器将在 python unittest.TestCase 方法中引发给定异常?
【问题讨论】:
-
非常好的问题:“如何断言类的属性设置器会在 python unittest.TestCase 方法中引发给定的异常?”知道 unittest 缺少断言天气所需的功能或属性设置器会引发异常。
标签: python unit-testing properties assert testcase