def test_refund_disputed_payin(self): self.make_participant( 'LiberapayOrg', kind='organization', balance=EUR('100.00'), mangopay_user_id='0', mangopay_wallet_id='0', ) exchange = charge(self.db, self.janet_route, EUR('20'), 'http://localhost/') # Dry run msg, e_refund = refund_disputed_payin(self.db, exchange, dry_run=True) assert msg.startswith('[dry run] partial refund ') assert e_refund is None # For real msg, e_refund = refund_disputed_payin(self.db, exchange) assert msg == 'succeeded' assert e_refund.amount == -exchange.amount assert e_refund.fee == exchange.fee.zero() janet = self.janet.refetch() assert janet.balance == 0 self.db.self_check() # Again msg, e_refund_2 = refund_disputed_payin(self.db, exchange) assert msg == 'already done' assert e_refund_2.id == e_refund.id