Dies ist meine erste Datei namens user.pyWie in einer Klasse in Python eine Eigenschaft verspotten
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
I 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
Mein Ziel eine zweite Datei namens zu testen benutzer.py. Ich möchte unter anderem das Account-Objekt in user.py für den Property-Designer "has_discount" mokieren. Ich möchte verschiedene Szenarien testen, in denen has_discount entweder 0 oder eine andere Zahl zurückgibt.
Wie mache ich das mit Patch, wo ich das Account-Objekt in der User-Klasse spotten kann, um benutzerdefinierte Werte zurückzugeben, damit ich verschiedene Tests ausprobieren kann?