def setStatus(self, status: TransactionStatus, detail: str = None): payment_status = PaymentStatus() payment_status.status = status payment_status.date = datetime.utcnow() payment_status.detail = detail self.statuses.append(payment_status)
def test_payment_date_should_return_oldest_payment_date_for_status_sent_if_several(self, app): # Given payment_date = datetime.utcnow() payment = Payment() payment_status = PaymentStatus() payment_status.status = TransactionStatus.SENT payment_status.date = payment_date payment.statuses = [payment_status] older_payment_date = datetime.utcnow() - timedelta(days=1) payment_status.status = TransactionStatus.SENT payment_status.date = older_payment_date payment.statuses = [payment_status] # When/Then payment_sent_date = payment.lastProcessedDate assert payment_sent_date == older_payment_date # pylint: disable=comparison-with-callable
def test_payment_date_should_return_payment_date_for_status_sent(self): # Given payment_date = datetime.utcnow() payment = Payment() payment_status = PaymentStatus() payment_status.status = TransactionStatus.SENT payment_status.date = payment_date payment.statuses = [payment_status] # When/Then payment_sent_date = payment.lastProcessedDate assert payment_sent_date == payment_date # pylint: disable=comparison-with-callable
def test_payment_date_should_return_no_payment_date_for_status_pending(self): # Given payment_date = datetime.utcnow() payment = Payment() payment_status = PaymentStatus() payment_status.status = TransactionStatus.PENDING payment_status.date = payment_date payment.statuses = [payment_status] # When/Then payment_sent_date = payment.lastProcessedDate assert payment_sent_date is None
def create_payment( booking: Booking, offerer: Offerer, amount: int = 10, author: str = "test author", bic: str = None, comment: str = None, iban: str = None, idx: int = None, payment_message: PaymentMessage = None, payment_message_name: str = None, reimbursement_rate: float = 0.5, reimbursement_rule: str = "remboursement à 100%", status: TransactionStatus = TransactionStatus.PENDING, detail: str = None, status_date: datetime = datetime.utcnow(), transaction_end_to_end_id: str = None, transaction_label: str = None, ) -> Payment: payment_status = PaymentStatus() payment_status.status = status payment_status.date = status_date payment_status.detail = detail payment = Payment() payment.amount = amount payment.author = author payment.bic = bic payment.booking = booking payment.comment = comment payment.iban = iban payment.id = idx if payment_message_name: payment.paymentMessage = create_payment_message( name=payment_message_name) elif payment_message: payment.paymentMessage = payment_message payment.recipientName = offerer.name payment.recipientSiren = offerer.siren payment.reimbursementRate = reimbursement_rate payment.reimbursementRule = reimbursement_rule payment.statuses = [payment_status] payment.transactionEndToEndId = transaction_end_to_end_id payment.transactionLabel = transaction_label return payment
def test_appends_a_status_to_a_payment_with_existing_status(self): # given one_second = timedelta(seconds=1) now = datetime.utcnow() payment = Payment() payment_status = PaymentStatus() payment_status.status = TransactionStatus.PENDING payment_status.date = datetime.utcnow() payment.statuses = [payment_status] # when payment.setStatus(TransactionStatus.SENT) # then assert len(payment.statuses) == 2 assert payment.statuses[1].status == TransactionStatus.SENT assert payment.statuses[1].detail is None assert now - one_second < payment.statuses[1].date < now + one_second