Coverage for website/payments/tests/__mocks__.py: 100.00%
58 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from unittest.mock import MagicMock
3from django.utils.functional import classproperty
5from payments.payables import Payable
8class MockManager:
9 pass
12class MockModel:
13 class Meta:
14 app_label = "mock_app"
15 model_name = "mock_model"
17 payment = None
18 pk = 1
19 test_field = ""
20 _meta = Meta()
21 objects = MockManager()
23 def __init__(
24 self,
25 payer,
26 amount=5,
27 topic="mock topic",
28 notes="mock notes",
29 payment=None,
30 can_manage=True,
31 paying_allowed=True,
32 ) -> None:
33 self.payer = payer
34 self.amount = amount
35 self.topic = topic
36 self.notes = notes
37 self.payment = payment
38 self.can_manage = can_manage
39 self.paying_allowed = paying_allowed
41 # Because we have to do as if this is a model sometimes
42 self.verbose_name = "MockPayable"
43 self.verbose_name_plural = self.verbose_name + "s"
45 def save(self):
46 pass
48 def refresh_from_db(self):
49 pass
52class MockPayable(Payable):
53 save = MagicMock()
54 verbose_name = "MockPayable"
55 verbose_name_plural = "MockPayables"
57 @property
58 def payment_amount(self):
59 return self.model.amount
61 @property
62 def payment_topic(self):
63 return self.model.topic
65 @property
66 def payment_notes(self):
67 return self.model.notes
69 @property
70 def payment_payer(self):
71 return self.model.payer
73 @property
74 def paying_allowed(self):
75 return self.model.paying_allowed
77 def can_manage_payment(self, member):
78 return self.model.can_manage
80 @classproperty
81 def immutable_after_payment(self):
82 return False
84 @classproperty
85 def immutable_foreign_key_models(self):
86 return {}
88 @classproperty
89 def immutable_model_fields_after_payment(self):
90 return []