fixed a few more tests
This commit is contained in:
parent
c16e9079ca
commit
528ad8cade
|
@ -1,6 +1,5 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from mhackspace.rfid.models import Device, DeviceAuth
|
||||
from mhackspace.rfid.models import Device
|
||||
|
||||
|
||||
class Task(object):
|
||||
|
@ -11,6 +10,7 @@ class Task(object):
|
|||
|
||||
class DeviceSerializer(serializers.ModelSerializer):
|
||||
added_date = serializers.DateTimeField(format='iso-8601')
|
||||
|
||||
class Meta:
|
||||
model = Device
|
||||
fields = ('__all__')
|
||||
|
@ -22,13 +22,3 @@ class AuthSerializer(serializers.Serializer):
|
|||
# device = serializers.UUIDField(format='hex_verbose')
|
||||
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):
|
||||
try:
|
||||
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)
|
||||
except ObjectDoesNotExist:
|
||||
return Response(status=status.HTTP_404_NOT_FOUND)
|
||||
except ValidationError:
|
||||
except ValidationError as e:
|
||||
# except:
|
||||
# logger.exception("An error occurred")
|
||||
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
|
|
@ -12,6 +12,7 @@ logger = logging.getLogger(__name__)
|
|||
PROVIDER_ID = {'gocardless':1, 'braintree': 2}
|
||||
PROVIDER_NAME = {1: 'gocardless', 2: 'braintree'}
|
||||
|
||||
|
||||
def select_provider(type):
|
||||
if type == "gocardless": return gocardless_provider()
|
||||
if type == "braintree": return braintree_provider()
|
||||
|
@ -20,6 +21,7 @@ def select_provider(type):
|
|||
log.exception('[scaffold] - "No Provider for ' + type)
|
||||
assert 0, "No Provider for " + type
|
||||
|
||||
|
||||
class gocardless_provider:
|
||||
"""
|
||||
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
|
||||
|
||||
|
||||
class TestPaymentGatewaysGocardless(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
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):
|
||||
# mock braintree initalisation request
|
||||
mock_request.return_value = Mock(ok=True)
|
||||
|
@ -27,7 +28,7 @@ class TestPaymentGatewaysGocardless(TestCase):
|
|||
return self.provider #self.provider
|
||||
|
||||
@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):
|
||||
mock_subscription.return_value = Mock(success='success')
|
||||
mock_subscription.cancel.return_value = Mock(
|
||||
|
@ -43,8 +44,8 @@ class TestPaymentGatewaysGocardless(TestCase):
|
|||
self.assertEqual(result.get('reference'), '01')
|
||||
self.assertEqual(result.get('success'), 'success')
|
||||
|
||||
@patch('mhackspace.subscriptions.payments.gocardless.client.subscription', autospec=True)
|
||||
@patch('mhackspace.subscriptions.payments.gocardless.client.confirm_resource', autospec=True)
|
||||
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.subscription', autospec=True)
|
||||
@patch('mhackspace.subscriptions.payments.gocardless_pro.client.confirm_resource', autospec=True)
|
||||
def test_confirm_subscription_callback(self, mock_confirm, mock_subscription):
|
||||
mock_confirm.return_value = Mock(success='success')
|
||||
mock_subscription.return_value = Mock(
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||
# from django.contrib.auth.models import Group
|
||||
from django.test import Client
|
||||
from django.test import RequestFactory
|
||||
from django.core.urlresolvers import reverse
|
||||
from test_plus.test import TestCase
|
||||
from mock import patch, Mock
|
||||
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 (
|
||||
MembershipCancelView,
|
||||
|
@ -20,7 +23,12 @@ class BaseUserTestCase(TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.user = self.make_user()
|
||||
self.user.save()
|
||||
self.factory = RequestFactory()
|
||||
self.client = Client()
|
||||
self.client.login(
|
||||
username=self.user.username,
|
||||
password=self.user.password)
|
||||
|
||||
|
||||
class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
||||
|
@ -36,22 +44,30 @@ class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
|||
'success': True
|
||||
}
|
||||
|
||||
request = self.factory.post(
|
||||
response = self.client.post(
|
||||
reverse('join_hackspace_success', kwargs={'provider': 'gocardless'}), {
|
||||
'resource_id': 'R01',
|
||||
'resource_type': 'subscription',
|
||||
'resource_url': 'https://sandbox.gocardless.com',
|
||||
'signature': 'test_signature'
|
||||
}
|
||||
},
|
||||
follow=True
|
||||
)
|
||||
|
||||
setattr(request, 'session', 'session')
|
||||
messages = FallbackStorage(request)
|
||||
setattr(request, '_messages', messages)
|
||||
request.user = self.user
|
||||
# print('=============================')
|
||||
# setattr(request, 'session', 'session')
|
||||
# messages = FallbackStorage(request)
|
||||
# setattr(request, '_messages', messages)
|
||||
# request.user = user1
|
||||
|
||||
view = MembershipJoinSuccessView()
|
||||
view.request = request
|
||||
# view = MembershipJoinSuccessView()
|
||||
# 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(
|
||||
view.get_redirect_url(provider ='gocardless'),
|
||||
reverse('users:detail', kwargs={'username': self.user.username})
|
||||
|
@ -60,7 +76,7 @@ class TestSubscriptionSuccessRedirectView(BaseUserTestCase):
|
|||
members = Membership.objects.all()
|
||||
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):
|
||||
# Instantiate the view directly. Never do this outside a test!
|
||||
# Generate a fake request
|
||||
|
|
|
@ -99,9 +99,10 @@ class MembershipJoinSuccessView(LoginRequiredMixin, RedirectView):
|
|||
def get_redirect_url(self, *args, **kwargs):
|
||||
payment_provider = 'gocardless'
|
||||
provider = select_provider(payment_provider)
|
||||
print(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
|
||||
result = provider.confirm_subscription(
|
||||
membership=membership,
|
||||
session=self.request.session.session_key,
|
||||
|
|
|
@ -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