예제 #1
0
    def test_transaction_done_update_member_category(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price="123.54")
        view = NotificationView()
        view.transaction_code = 'xpto'
        view.transaction_done(payment.id)

        reloaded_member = Member.objects.get(id=self.member.id)
        self.assertEqual(reloaded_member.category, payment.type.category)
예제 #2
0
    def test_transaction_done_should_respect_last_payment_date(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price="123.54")
        valid_until = timezone.now() + timedelta(days=payment.type.duration)
        view = NotificationView()
        view.transaction_code = 'xpto'
        view.transaction_done(payment.id)

        reloaded_payment = Payment.objects.get(id=payment.id)
        self.assertEqual(reloaded_payment.valid_until.strftime('%Y-%m-%d'),
                         valid_until.strftime('%Y-%m-%d'))
예제 #3
0
    def test_transaction_done_fill_payment_date(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price="123.54")
        self.assertFalse(payment.date)
        view = NotificationView()
        view.transaction_code = 'xpto'
        view.transaction_done(payment.id)

        reloaded_payment = Payment.objects.get(id=payment.id)
        self.assertTrue(reloaded_payment.date)
        self.assertEqual(reloaded_payment.date.strftime('%Y-%m-%d+%H:%M'),
                         timezone.now().strftime('%Y-%m-%d+%H:%M'))
예제 #4
0
    def test_post_with_other_status_should_not_return_payment_done(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price='123.45')
        notification_view = NotificationView()
        notification_view.transaction = (lambda code: (7, 1, 1))
        request = RequestFactory().post("/", {"notificationCode": "xpto"})

        response = notification_view.post(request)

        transaction = Transaction.objects.get(id=transaction.id)

        self.assertFalse(payment.done())
        self.assertEqual("OK", response.content)
예제 #5
0
    def test_transaction_done_fill_payment_valid_until(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price="123.54")
        self.assertFalse(payment.valid_until)
        view = NotificationView()
        view.transaction_code = 'xpto'
        view.transaction_done(payment.id)

        valid_until = timezone.now() + timedelta(days=payment.type.duration)
        reloaded_payment = Payment.objects.get(id=payment.id)
        self.assertTrue(reloaded_payment.valid_until)
        self.assertEqual(
            reloaded_payment.valid_until.strftime('%Y-%m-%d+%H:%M'),
            valid_until.strftime('%Y-%m-%d+%H:%M'))
예제 #6
0
    def test_transaction_done_send_email(self):
        payment, transaction = self._make_transaction(status=1,
                                                      code="xpto",
                                                      price="123.54")

        #make sure that the outbox is empty
        mail.outbox = []

        view = NotificationView()
        view.transaction_code = 'xpto'
        view.transaction_done(payment.id)

        #get the created member
        #set the strings to be verified
        body = u'Olá %s! Seu registro na Associação Python Brasil (APyB) já foi realizado!' % self.member.user.get_full_name(
        )
        subject = u'Registro OK'

        #verify the outbox length
        self.assertEqual(len(mail.outbox), 1)
        #verify the subject string
        self.assertEqual(mail.outbox[0].subject, subject)
        #verify the body string
        self.assertEqual(mail.outbox[0].body, body)
예제 #7
0
 def test_transaction_should_get_info_about_transaction(self):
     status, ref, price = NotificationView().transaction("code")
     self.assertEqual(3, status)
     self.assertEqual(3, ref)
     self.assertEqual(1.00, price)