fixed a few more tests

This commit is contained in:
Oly 2017-09-13 14:28:16 +01:00
parent c16e9079ca
commit 528ad8cade
7 changed files with 55 additions and 29 deletions

View File

@ -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', )

View File

@ -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)

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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,

View File

@ -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 = [
]