Skip to content

Commit 6735305

Browse files
committed
edit tests for settlements
1 parent 912966f commit 6735305

File tree

2 files changed

+69
-3
lines changed

2 files changed

+69
-3
lines changed

balanced/resources.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -602,10 +602,10 @@ class Account(FundingInstrument):
602602

603603
uri_gen = wac.URIGen('/accounts', '{account}')
604604

605-
def settle(self, destination, **kwargs):
605+
def settle(self, funding_instrument, **kwargs):
606606
return Settlement(
607607
href=self.settlements.href,
608-
destination=destination,
608+
funding_instrument=funding_instrument,
609609
**kwargs
610610
)
611611

tests/test_suite.py

+67-1
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ def test_accounts_transfer(self):
512512

513513
order.debit_from(source=card, amount=1234)
514514
sweep_account = merchant.account
515+
self.assertEqual(sweep_account.balance, 0)
515516
account_credit = sweep_account.credit(amount=1234, order=order.href,
516517
appears_on_statement_as='Payout')
517518
self.assertEqual(account_credit.status, 'succeeded')
@@ -522,12 +523,14 @@ def test_accounts_transfer_from_multiple_orders(self):
522523
merchant = balanced.Customer().save()
523524
card = balanced.Card(**INTERNATIONAL_CARD).save()
524525
sweep_account = merchant.account
526+
self.assertEqual(sweep_account.balance, 0)
525527
amount = 1234
526528

527529
order_one = merchant.create_order()
528530
order_one.debit_from(source=card, amount=amount)
529531
account_credit_one = sweep_account.credit(amount=amount,
530532
order=order_one.href)
533+
self.assertEqual(sweep_account.balance, amount)
531534
order_two = merchant.create_order()
532535
order_two.debit_from(source=card, amount=amount)
533536
account_credit_two = sweep_account.credit(amount=amount,
@@ -543,6 +546,7 @@ def test_settlement(self):
543546
sweep_account = merchant.account
544547
account_credit = sweep_account.credit(amount=1234, order=order.href,
545548
appears_on_statement_as='Payout')
549+
self.assertEqual(sweep_account.balance, 1234)
546550
bank_account = balanced.BankAccount(
547551
account_number='1234567890',
548552
routing_number='321174851',
@@ -551,13 +555,75 @@ def test_settlement(self):
551555
bank_account.associate_to_customer(merchant)
552556

553557
settlement = sweep_account.settle(
554-
destination=bank_account.href,
558+
funding_instrument=bank_account.href,
555559
appears_on_statement_as="Settlement Oct",
556560
description="Settlement for payouts from October")
557561
self.assertEqual(settlement.amount, 1234)
558562
self.assertEqual(settlement.appears_on_statement_as, "Settlement Oct")
559563
self.assertEqual(settlement.description,
560564
"Settlement for payouts from October")
565+
self.assertEqual(sweep_account.balance, 0)
566+
567+
def test_reverse_settlement(self):
568+
merchant = balanced.Customer().save()
569+
order = merchant.create_order()
570+
card = balanced.Card(**INTERNATIONAL_CARD).save()
571+
572+
order.debit_from(source=card, amount=1234)
573+
sweep_account = merchant.account
574+
account_credit = sweep_account.credit(amount=1234, order=order.href,
575+
appears_on_statement_as='Payout')
576+
self.assertEqual(sweep_account.balance, 1234)
577+
578+
bank_account = balanced.BankAccount(
579+
account_number='1234567890',
580+
routing_number='321174851',
581+
name='Someone',
582+
).save()
583+
bank_account.associate_to_customer(merchant)
584+
585+
settlement = sweep_account.settle(
586+
funding_instrument=bank_account.href,
587+
appears_on_statement_as="Settlement Oct",
588+
description="Settlement for payouts from October")
589+
self.assertEqual(sweep_account.balance, 0)
590+
591+
credit_from_escrow = sweep_account.credit(amount=1234)
592+
self.assertEqual(sweep_account.balance, 1234)
593+
594+
account_credit.reverse(amount=1234)
595+
self.assertEqual(sweep_account.balance, 0)
596+
597+
def test_reverse_settlement_with_negative_account_balance(self):
598+
merchant = balanced.Customer().save()
599+
order = merchant.create_order()
600+
card = balanced.Card(**INTERNATIONAL_CARD).save()
601+
602+
order.debit_from(source=card, amount=1234)
603+
sweep_account = merchant.account
604+
account_credit = sweep_account.credit(amount=1234, order=order.href,
605+
appears_on_statement_as='Payout')
606+
bank_account = balanced.BankAccount(
607+
account_number='1234567890',
608+
routing_number='321174851',
609+
name='Someone',
610+
).save()
611+
bank_account.associate_to_customer(merchant)
612+
613+
settlement = sweep_account.settle(
614+
funding_instrument=bank_account.href,
615+
appears_on_statement_as="Settlement Oct",
616+
description="Settlement for payouts from October")
617+
self.assertEqual(sweep_account.balance, 0)
618+
619+
account_credit.reverse(amount=1234)
620+
self.assertEqual(sweep_account.balance, -1234)
621+
622+
settlement = sweep_account.settle(
623+
funding_instrument=bank_account.href,
624+
appears_on_statement_as="Settlement Oct",
625+
description="Settlement for payouts from October")
626+
self.assertEqual(sweep_account.balance, 0)
561627

562628

563629
class Rev0URIBasicUseCases(unittest.TestCase):

0 commit comments

Comments
 (0)