示例#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_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)
示例#4
0
    def test_post(self):
        payment, transaction = self._make_transaction(status="pending", code="xpto", price='123.45')
        notification_view = NotificationView()
        notification_view.transaction = (lambda code: (3, 1))
        request = RequestFactory().post("/", {"notificationCode": "123"})

        response = notification_view.post(request)

        transaction = Transaction.objects.get(id=transaction.id)
        self.assertEqual("done", transaction.status)
        self.assertEqual("OK", response.content)
示例#5
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)
示例#6
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'))
示例#7
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'))
示例#8
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')
        )
示例#9
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'))
示例#10
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)
示例#11
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'))
示例#12
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)
示例#13
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)
示例#14
0
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, url
from app.payment.views import NotificationView, PaymentView

urlpatterns = patterns(
    '',
    url(r'^notification/$', NotificationView.as_view(), name='payment-notification'),
    url(r'^(?P<member_id>[\d]+)/$', PaymentView.as_view(), name='payment'),
)
示例#15
0
# -*- coding: utf-8 -*-
from django.conf.urls.defaults import patterns, url
from app.payment.views import NotificationView, PaymentView

urlpatterns = patterns(
    '',
    url(r'^notification/$',
        NotificationView.as_view(),
        name='payment-notification'),
    url(r'^(?P<member_id>[\d]+)/$', PaymentView.as_view(), name='payment'),
)
示例#16
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)