def test_payment(self): enrolments = EnrolmentFactory.create_batch(size=3) allocations = {enrolment.id: Decimal(5) for enrolment in enrolments} services.add_distributed_payment( narrative='test', amount=Decimal(15), type_id=models.TransactionTypes.CREDIT_CARD, user=self.user, enrolments=allocations, ) ledger_items = models.Ledger.objects.all() self.assertEqual(len(ledger_items), 4) self.assertEqual(ledger_items.total(), 0)
def test_transfer(self): """Check for correct outstanding balances""" source, target = EnrolmentFactory.create_batch(size=2) services.transfer_funds( source_enrolment=source, target_enrolment=target, amount=Decimal(100), narrative='Test', type_id=models.TransactionTypes.CREDIT_CARD, user=self.user, ) self.assertEqual(source.get_balance(), 100) self.assertEqual(target.get_balance(), -100)
def setUpTestData(cls): super().setUpTestData() cls.enrolments: list = EnrolmentFactory.create_batch(size=2) query_string = urlencode({'enrolment': [enrolment.pk for enrolment in cls.enrolments]}, doseq=True) cls.url = reverse('finance:pay-multiple-enrolments') + f'?{query_string}'