예제 #1
0
 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)
예제 #2
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)
예제 #3
0
 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}'