Esempio n. 1
0
 def setUp(self):
     super(TestCreditStripePaymentHandler, self).setUp()
     self.domain = Domain(name='test-domain')
     self.domain.save()
     self.payment_method = PaymentMethod()
     self.payment_method.save()
     self.account, _ = BillingAccount.get_or_create_account_by_domain(
         self.domain.name, created_by='*****@*****.**')
Esempio n. 2
0
class TestCreditStripePaymentHandler(TransactionTestCase):
    def setUp(self):
        super(TestCreditStripePaymentHandler, self).setUp()
        generator.instantiate_accounting()
        self.domain = Domain(name='test-domain')
        self.domain.save()
        self.payment_method = PaymentMethod()
        self.payment_method.save()
        self.account, _ = BillingAccount.get_or_create_account_by_domain(
            self.domain.name, created_by='*****@*****.**')

    def tearDown(self):
        self.domain.delete()
        PaymentRecord.objects.all().delete()
        self.payment_method.delete()
        self.account.delete()
        super(TestCreditStripePaymentHandler, self).tearDown()

    @patch.object(stripe.Charge, 'create')
    def test_working_process_request(self, mock_create):
        self._call_process_request()

        self.assertEqual(PaymentRecord.objects.count(), 1)
        self.assertEqual(mock_create.call_count, 1)

    @patch.object(stripe.Charge, 'create')
    def test_when_stripe_errors_no_payment_record_exists(self, mock_create):
        mock_create.side_effect = Exception

        self._call_process_request()

        self.assertEqual(PaymentRecord.objects.count(), 0)

    @patch.object(stripe.Charge, 'create')
    @patch.object(PaymentRecord, 'create_record')
    def test_when_create_record_fails_stripe_is_not_charged(
            self, mock_create_record, mock_create):
        mock_create_record.side_effect = Exception

        try:
            self._call_process_request()
        except:
            pass

        self.assertEqual(PaymentRecord.objects.count(), 0)
        self.assertEqual(mock_create.call_count, 0)

    def _call_process_request(self):
        CreditStripePaymentHandler(self.payment_method,
                                   self.domain,
                                   self.account,
                                   post_data={}).process_request(
                                       RequestFactory().post(
                                           '', {'amount': 1}))
class TestCreditStripePaymentHandler(TransactionTestCase):

    def setUp(self):
        super(TestCreditStripePaymentHandler, self).setUp()
        self.domain = Domain(name='test-domain')
        self.domain.save()
        self.payment_method = PaymentMethod()
        self.payment_method.save()
        self.account, _ = BillingAccount.get_or_create_account_by_domain(
            self.domain.name, created_by='*****@*****.**'
        )

    def tearDown(self):
        self.domain.delete()
        PaymentRecord.objects.all().delete()
        self.payment_method.delete()
        self.account.delete()
        super(TestCreditStripePaymentHandler, self).tearDown()

    @patch.object(stripe.Charge, 'create')
    def test_working_process_request(self, mock_create):
        self._call_process_request()

        self.assertEqual(PaymentRecord.objects.count(), 1)
        self.assertEqual(mock_create.call_count, 1)

    @patch.object(stripe.Charge, 'create')
    def test_when_stripe_errors_no_payment_record_exists(self, mock_create):
        mock_create.side_effect = Exception

        self._call_process_request()

        self.assertEqual(PaymentRecord.objects.count(), 0)

    @patch.object(stripe.Charge, 'create')
    @patch.object(PaymentRecord, 'create_record')
    def test_when_create_record_fails_stripe_is_not_charged(self, mock_create_record, mock_create):
        mock_create_record.side_effect = Exception

        try:
            self._call_process_request()
        except:
            pass

        self.assertEqual(PaymentRecord.objects.count(), 0)
        self.assertEqual(mock_create.call_count, 0)

    def _call_process_request(self):
        CreditStripePaymentHandler(
            self.payment_method, self.domain, self.account, post_data={}
        ).process_request(
            RequestFactory().post('', {'amount': 1})
        )
Esempio n. 4
0
 def setUpClass(cls):
     super(TestCreditStripePaymentHandler, cls).setUpClass()
     cls.domain = Domain(name='test-domain')
     cls.domain.save()
     cls.payment_method = PaymentMethod()
     cls.payment_method.save()
     cls.account, _ = BillingAccount.get_or_create_account_by_domain(
         cls.domain.name, created_by='*****@*****.**')
 def setUp(self):
     self.domain = Domain(name='test-domain')
     self.domain.save()
     self.payment_method = PaymentMethod()
     self.payment_method.save()
     self.account, _ = BillingAccount.get_or_create_account_by_domain(
         self.domain.name, created_by='*****@*****.**'
     )
 def setUp(self):
     super(TestCreditStripePaymentHandler, self).setUp()
     self.domain = Domain(name='test-domain')
     self.domain.save()
     self.payment_method = PaymentMethod()
     self.payment_method.save()
     self.account, _ = BillingAccount.get_or_create_account_by_domain(
         self.domain.name, created_by='*****@*****.**'
     )