fixed a few more tests
This commit is contained in:
parent
c16e9079ca
commit
528ad8cade
|
@ -1,6 +1,5 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
from mhackspace.rfid.models import Device
|
||||||
from mhackspace.rfid.models import Device, DeviceAuth
|
|
||||||
|
|
||||||
|
|
||||||
class Task(object):
|
class Task(object):
|
||||||
|
@ -11,6 +10,7 @@ class Task(object):
|
||||||
|
|
||||||
class DeviceSerializer(serializers.ModelSerializer):
|
class DeviceSerializer(serializers.ModelSerializer):
|
||||||
added_date = serializers.DateTimeField(format='iso-8601')
|
added_date = serializers.DateTimeField(format='iso-8601')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
fields = ('__all__')
|
fields = ('__all__')
|
||||||
|
@ -22,13 +22,3 @@ class AuthSerializer(serializers.Serializer):
|
||||||
# device = serializers.UUIDField(format='hex_verbose')
|
# device = serializers.UUIDField(format='hex_verbose')
|
||||||
device = serializers.CharField(max_length=255)
|
device = serializers.CharField(max_length=255)
|
||||||
|
|
||||||
# def create(self, validated_data):
|
|
||||||
# return Task(id=None, **validated_data)
|
|
||||||
|
|
||||||
# def update(self, instance, validated_data):
|
|
||||||
# for field, value in validated_data.items():
|
|
||||||
# setattr(instance, field, value)
|
|
||||||
# return instance
|
|
||||||
|
|
||||||
# class Meta:
|
|
||||||
# fields = ('name', )
|
|
||||||
|
|
|
@ -28,11 +28,11 @@ class AuthUserWithDeviceViewSet(viewsets.ViewSet):
|
||||||
def post(self, request, format=None):
|
def post(self, request, format=None):
|
||||||
try:
|
try:
|
||||||
rfid = Rfid.objects.get(code=request.data.get('rfid'))
|
rfid = Rfid.objects.get(code=request.data.get('rfid'))
|
||||||
# device = Device.objects.get(identifier=request.data.get('device'))
|
device = Device.objects.get(identifier=request.data.get('device'))
|
||||||
deviceAuth = DeviceAuth.objects.get(device=device.identifier, rfid=rfid.id)
|
deviceAuth = DeviceAuth.objects.get(device=device.identifier, rfid=rfid.id)
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
return Response(status=status.HTTP_404_NOT_FOUND)
|
return Response(status=status.HTTP_404_NOT_FOUND)
|
||||||
except ValidationError:
|
except ValidationError as e:
|
||||||
# except:
|
# except:
|
||||||
# logger.exception("An error occurred")
|
# logger.exception("An error occurred")
|
||||||
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
|
|
|
@ -12,6 +12,7 @@ logger = logging.getLogger(__name__)
|
||||||
PROVIDER_ID = {'gocardless':1, 'braintree': 2}
|
PROVIDER_ID = {'gocardless':1, 'braintree': 2}
|
||||||
PROVIDER_NAME = {1: 'gocardless', 2: 'braintree'}
|
PROVIDER_NAME = {1: 'gocardless', 2: 'braintree'}
|
||||||
|
|
||||||
|
|
||||||
def select_provider(type):
|
def select_provider(type):
|
||||||
if type == "gocardless": return gocardless_provider()
|
if type == "gocardless": return gocardless_provider()
|
||||||
if type == "braintree": return braintree_provider()
|
if type == "braintree": return braintree_provider()
|
||||||
|
@ -20,6 +21,7 @@ def select_provider(type):
|
||||||
log.exception('[scaffold] - "No Provider for ' + type)
|
log.exception('[scaffold] - "No Provider for ' + type)
|
||||||
assert 0, "No Provider for " + type
|
assert 0, "No Provider for " + type
|
||||||
|
|
||||||
|
|
||||||
class gocardless_provider:
|
class gocardless_provider:
|
||||||
"""
|
"""
|
||||||
gocardless test account details 20-00-00, 55779911
|
gocardless test account details 20-00-00, 55779911
|
||||||
|
|
|
@ -6,12 +6,13 @@ from mock import patch, Mock
|
||||||
|
|
||||||
from mhackspace.subscriptions.payments import payment, gocardless_provider, braintree_provider
|
from mhackspace.subscriptions.payments import payment, gocardless_provider, braintree_provider
|
||||||
|
|
||||||
|
|
||||||
class TestPaymentGatewaysGocardless(TestCase):
|
class TestPaymentGatewaysGocardless(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.auth_gocardless()
|
self.auth_gocardless()
|
||||||
|
|
||||||
@patch('mhackspace.subscriptions.payments.gocardless.request.requests.get', autospec=True)
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.request.requests.get', autospec=True)
|
||||||
def auth_gocardless(self, mock_request):
|
def auth_gocardless(self, mock_request):
|
||||||
# mock braintree initalisation request
|
# mock braintree initalisation request
|
||||||
mock_request.return_value = Mock(ok=True)
|
mock_request.return_value = Mock(ok=True)
|
||||||
|
@ -27,7 +28,7 @@ class TestPaymentGatewaysGocardless(TestCase):
|
||||||
return self.provider #self.provider
|
return self.provider #self.provider
|
||||||
|
|
||||||
@skip("Need to implement")
|
@skip("Need to implement")
|
||||||
@patch('mhackspace.subscriptions.payments.gocardless.client.subscription', autospec=True)
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.subscription', autospec=True)
|
||||||
def test_unsubscribe(self, mock_subscription):
|
def test_unsubscribe(self, mock_subscription):
|
||||||
mock_subscription.return_value = Mock(success='success')
|
mock_subscription.return_value = Mock(success='success')
|
||||||
mock_subscription.cancel.return_value = Mock(
|
mock_subscription.cancel.return_value = Mock(
|
||||||
|
@ -43,8 +44,8 @@ class TestPaymentGatewaysGocardless(TestCase):
|
||||||
self.assertEqual(result.get('reference'), '01')
|
self.assertEqual(result.get('reference'), '01')
|
||||||
self.assertEqual(result.get('success'), 'success')
|
self.assertEqual(result.get('success'), 'success')
|
||||||
|
|
||||||
@patch('mhackspace.subscriptions.payments.gocardless.client.subscription', autospec=True)
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.subscription', autospec=True)
|
||||||
@patch('mhackspace.subscriptions.payments.gocardless.client.confirm_resource', autospec=True)
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.confirm_resource', autospec=True)
|
||||||
def test_confirm_subscription_callback(self, mock_confirm, mock_subscription):
|
def test_confirm_subscription_callback(self, mock_confirm, mock_subscription):
|
||||||
mock_confirm.return_value = Mock(success='success')
|
mock_confirm.return_value = Mock(success='success')
|
||||||
mock_subscription.return_value = Mock(
|
mock_subscription.return_value = Mock(
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
from django.contrib.messages.storage.fallback import FallbackStorage
|
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||||
# from django.contrib.auth.models import Group
|
# from django.contrib.auth.models import Group
|
||||||
|
from django.test import Client
|
||||||
from django.test import RequestFactory
|
from django.test import RequestFactory
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from test_plus.test import TestCase
|
from test_plus.test import TestCase
|
||||||
from mock import patch, Mock
|
from mock import patch, Mock
|
||||||
from mhackspace.users.models import Membership
|
from mhackspace.users.models import Membership
|
||||||
from mhackspace.users.models import Membership
|
from mhackspace.users.models import User
|
||||||
|
|
||||||
|
from mhackspace.subscriptions.payments import payment, gocardless_provider, braintree_provider
|
||||||
|
|
||||||
from ..views import (
|
from ..views import (
|
||||||
MembershipCancelView,
|
MembershipCancelView,
|
||||||
|
@ -20,7 +23,12 @@ class BaseUserTestCase(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.user = self.make_user()
|
self.user = self.make_user()
|
||||||
|
self.user.save()
|
||||||
self.factory = RequestFactory()
|
self.factory = RequestFactory()
|
||||||
|
self.client = Client()
|
||||||
|
self.client.login(
|
||||||
|
username=self.user.username,
|
||||||
|
password=self.user.password)
|
||||||
|
|
||||||
|
|
||||||
class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
||||||
|
@ -36,22 +44,30 @@ class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
||||||
'success': True
|
'success': True
|
||||||
}
|
}
|
||||||
|
|
||||||
request = self.factory.post(
|
response = self.client.post(
|
||||||
reverse('join_hackspace_success', kwargs={'provider': 'gocardless'}), {
|
reverse('join_hackspace_success', kwargs={'provider': 'gocardless'}), {
|
||||||
'resource_id': 'R01',
|
'resource_id': 'R01',
|
||||||
'resource_type': 'subscription',
|
'resource_type': 'subscription',
|
||||||
'resource_url': 'https://sandbox.gocardless.com',
|
'resource_url': 'https://sandbox.gocardless.com',
|
||||||
'signature': 'test_signature'
|
'signature': 'test_signature'
|
||||||
}
|
},
|
||||||
|
follow=True
|
||||||
)
|
)
|
||||||
|
|
||||||
setattr(request, 'session', 'session')
|
# print('=============================')
|
||||||
messages = FallbackStorage(request)
|
# setattr(request, 'session', 'session')
|
||||||
setattr(request, '_messages', messages)
|
# messages = FallbackStorage(request)
|
||||||
request.user = self.user
|
# setattr(request, '_messages', messages)
|
||||||
|
# request.user = user1
|
||||||
|
|
||||||
view = MembershipJoinSuccessView()
|
# view = MembershipJoinSuccessView()
|
||||||
view.request = request
|
# view.request = request
|
||||||
|
# print(self.user)
|
||||||
|
self.assertRedirects(
|
||||||
|
response,
|
||||||
|
expected_url=reverse('users:detail', kwargs={'username': self.user.username}),
|
||||||
|
status_code=302,
|
||||||
|
target_status_code=200)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
view.get_redirect_url(provider ='gocardless'),
|
view.get_redirect_url(provider ='gocardless'),
|
||||||
reverse('users:detail', kwargs={'username': self.user.username})
|
reverse('users:detail', kwargs={'username': self.user.username})
|
||||||
|
@ -60,7 +76,7 @@ class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
||||||
members = Membership.objects.all()
|
members = Membership.objects.all()
|
||||||
self.assertEqual(members.count(), 1)
|
self.assertEqual(members.count(), 1)
|
||||||
|
|
||||||
@patch('mhackspace.subscriptions.payments.gocardless.client.subscription', autospec=True)
|
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.subscription', autospec=True)
|
||||||
def test_failure_redirect_url(self, mock_obj):
|
def test_failure_redirect_url(self, mock_obj):
|
||||||
# Instantiate the view directly. Never do this outside a test!
|
# Instantiate the view directly. Never do this outside a test!
|
||||||
# Generate a fake request
|
# Generate a fake request
|
||||||
|
|
|
@ -99,6 +99,7 @@ class MembershipJoinSuccessView(LoginRequiredMixin, RedirectView):
|
||||||
def get_redirect_url(self, *args, **kwargs):
|
def get_redirect_url(self, *args, **kwargs):
|
||||||
payment_provider = 'gocardless'
|
payment_provider = 'gocardless'
|
||||||
provider = select_provider(payment_provider)
|
provider = select_provider(payment_provider)
|
||||||
|
print(self.request.user)
|
||||||
membership = Membership.objects.get(user=self.request.user)
|
membership = Membership.objects.get(user=self.request.user)
|
||||||
|
|
||||||
name = "Membership your membership id is MH%s" % membership.reference
|
name = "Membership your membership id is MH%s" % membership.reference
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.4 on 2017-09-13 07:40
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0004_auto_20170813_1557'),
|
||||||
|
('users', '0004_rfid'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
]
|
Loading…
Reference in New Issue