79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
from test_plus.test import TestCase
|
|
from unittest import skip
|
|
from mock import patch, Mock, MagicMock
|
|
from mhackspace.users.models import Membership
|
|
import django.utils.timezone
|
|
|
|
from mhackspace.subscriptions.payments import gocardless_provider, braintree_provider
|
|
from mhackspace.subscriptions.tests.mocks import gocardlessMocks
|
|
|
|
|
|
class TestPaymentGatewaysGocardless(gocardlessMocks):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
# self.date_now = django.utils.timezone.now()
|
|
# self.user = self.make_user()
|
|
# member = Membership()
|
|
# member.user = self.user
|
|
# member.payment = '20.00'
|
|
# member.date = self.date_now
|
|
# member.save()
|
|
# self.auth_gocardless()
|
|
|
|
|
|
@skip("Need to implement")
|
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.Client.subscription', autospec=True)
|
|
def test_unsubscribe(self, mock_subscription):
|
|
self.mock_success_responses()
|
|
# self.auth_gocardless()
|
|
mock_subscription.return_value = Mock(success='success')
|
|
mock_subscription.cancel.return_value = Mock(
|
|
id='01',
|
|
status='active',
|
|
amount=20.00,
|
|
created_at='date'
|
|
)
|
|
result = self.provider.cancel_subscription(reference='M01')
|
|
|
|
self.assertEqual(result.get('amount'), 20.00)
|
|
self.assertEqual(result.get('reference'), '02')
|
|
self.assertEqual(result.get('success'), 'success')
|
|
|
|
def test_confirm_subscription_callback(self):
|
|
self.mock_success_responses()
|
|
membership = self.create_membership_record()
|
|
# self.auth_gocardless()
|
|
# mock_confirm.return_value = Mock(success='success')
|
|
|
|
request_params = {
|
|
'resource_uri': 'http://gocardless/resource/url/01',
|
|
'resource_id': '01',
|
|
'resource_type': 'subscription',
|
|
'signature': 'sig',
|
|
'state': 'inactive'
|
|
}
|
|
|
|
|
|
# membership = Membership.objects.get(user=self.user)
|
|
result = self.provider.confirm_subscription(
|
|
membership=membership,
|
|
session=None,
|
|
provider_response={'redirect_flow_id': 'redirect_mock_url'},
|
|
name='test')
|
|
|
|
self.assertEqual(result.get('amount'), '20.00')
|
|
self.assertEqual(result.get('reference'), '02')
|
|
self.assertEqual(result.get('success'), '200')
|
|
|
|
def test_fetch_subscription_gocardless(self):
|
|
self.mock_success_responses()
|
|
for item in self.provider.fetch_subscriptions():
|
|
self.assertEqual(item.get('status'), 'active')
|
|
self.assertEqual(item.get('email'), 'test@test.com')
|
|
self.assertEqual(item.get('reference'), '01')
|
|
self.assertEqual(item.get('amount'), 20.00)
|
|
|