Tôi có một người quản lý khách hàng cho một mô hình Django mà override phương thức create
cũng để tiết kiệm một số đối tượng có liên quan:Làm thế nào để bạn thử một phương pháp liên quan trong Django?
class CustomManager(models.Manager):
def create(self, amount, user, description):
txn = self.get_query_set().create(user, description)
txn.budget_transactions.create(amount)
return txn
Câu hỏi của tôi là: làm thế nào để chế nhạo cuộc gọi đến txn.budget_transactions.create
để nâng cao một ngoại lệ?
Thuộc tính budget_transactions
của đối tượng txn
là ví dụ của django.db.models.fields.related.RelatedManager
. Sử dụng mock.patch
để giả lập lớp này không hoạt động vì nó được khai báo động - nó không thể được nhập trực tiếp.
Có ai biết cách thực hiện việc này không?
Bạn đang sử dụng thư viện Mock? Bạn có muốn sử dụng trình quản lý ngữ cảnh bản vá hoặc trình trang trí không? – santiagobasulto
Tôi rất vui khi sử dụng thư viện giả nếu nó có thể giải quyết vấn đề này. Như tôi đã nói ở trên, việc sử dụng 'mock.patch' theo cách thông thường không hoạt động do khai báo động của lớp RelatedManager. – DavidWinterbottom