From bbd72b3a95a4cf5082503bd527253143cb8f98f3 Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Sun, 1 Oct 2017 11:51:15 +0100 Subject: [PATCH] Fix up what tests we have so they all pass again --- mhackspace/subscriptions/tests/mocks.py | 56 +++++++++++++++++++++++ mhackspace/users/tests/test_serializer.py | 16 +++++++ 2 files changed, 72 insertions(+) create mode 100644 mhackspace/subscriptions/tests/mocks.py create mode 100644 mhackspace/users/tests/test_serializer.py diff --git a/mhackspace/subscriptions/tests/mocks.py b/mhackspace/subscriptions/tests/mocks.py new file mode 100644 index 0000000..86d7d90 --- /dev/null +++ b/mhackspace/subscriptions/tests/mocks.py @@ -0,0 +1,56 @@ +from test_plus.test import TestCase +from mock import patch, Mock, MagicMock, PropertyMock +from mhackspace.users.models import Membership +import django.utils.timezone +from collections import namedtuple + +from mhackspace.subscriptions.payments import gocardless_provider + + +class gocardlessMocks(TestCase): + + def setUp(self): + self.date_now = django.utils.timezone.now() + self.user = self.make_user() + self.auth_gocardless() + + def create_membership_record(self): + member = Membership() + member.user = self.user + member.payment = '20.00' + member.date = self.date_now + member.save() + return member + + @patch('mhackspace.subscriptions.payments.gocardless_pro', autospec=True) + def auth_gocardless(self, mock_request): + RedirectFlow = namedtuple('RedirectFlow', 'links') + Links = namedtuple('Links', 'mandate, customer') + mp = RedirectFlow( + links=Links(mandate='02', customer='01')) + + self.provider = gocardless_provider() + self.provider.client.redirect_flows.get = PropertyMock(return_value=mp) + + return self.provider + + def mock_success_responses(self): + + mock_list = MagicMock() + mock_list_records = MagicMock(side_effect=[Mock( + id='01', + status='active', + amount=20.00, + created_at='date' + )]) + mock_list.records.return_value = mock_list_records + + self.provider.client.subscriptions.list = mock_list + ApiResponse = namedtuple('ApiResponse', 'api_response, created_at') + ApiResponseStatus = namedtuple('ApiResponseStatus', 'status_code') + + self.provider.client.subscriptions.create = Mock( + return_value=ApiResponse( + created_at=self.date_now, + api_response=ApiResponseStatus(status_code='200')) + ) diff --git a/mhackspace/users/tests/test_serializer.py b/mhackspace/users/tests/test_serializer.py new file mode 100644 index 0000000..18f0ec8 --- /dev/null +++ b/mhackspace/users/tests/test_serializer.py @@ -0,0 +1,16 @@ +from test_plus.test import TestCase +from django.db import models +from allauth.utils import serialize_instance + + +class TestSerializeUser(TestCase): + + def setUp(self): + self.user = self.make_user() + + def test_serialize(self): + """check we can serialize the user object for allauth, custom types can break it""" + result = serialize_instance(self.user) + self.assertTrue( + isinstance(result, dict), + )