Это мой первый файл называется user.pyКак издеваются свойство внутри класса в Python
from account import Account
class User:
def __init__(self, id):
self.id = id
self._account = None
@property
def account(self):
if not self._account:
self._account = Account(self.id)
return self._account
@property
def has_discount(self)
return self.account.discount_id > 0
У меня есть второй файл с именем account.py
class Account:
def __init__(self, user_id):
# some process to load DB data
self.account = load_account(user_id)
# do something after this to initialize account properties like discount, etc
@property
def discount_id(self):
return self.discount_id
Моя цель заключается в проверке user.py. Одна из вещей, которую я хочу сделать, - обмануть объект Account в user.py для декоратора свойств has_discount. Я хочу проверить различные сценарии, где has_discount вернет либо 0, либо любое другое число.
Как это сделать с помощью патча, где я могу издеваться над объектом Account в классе User, чтобы возвращать пользовательские значения, чтобы я мог попробовать разные тесты?