Пример правилнього использования:
В конфтесте пайтеста мы в хуке
def pytest_itemcollected(item):
добавляем к тесткейсу поле
setattr(item, "extended_description", "Special text for reporting" )
Затем его использует какой то внешний код, например в
def pytest_runtest_makereport(item, call):
В этом случае оригинальное поведение объекта никак не аффектится, вполне легальное действие.
А вот за
class Example:
def
init(self):
...
def calculate(self):
return
self.data cl = Example
setattr(cl, "data", "Text")
cl.calculate()
обычно больно бьют, так как неявная логика во всей красе