Handle members group not existing, change update loop it no longer needs to return
This commit is contained in:
parent
d642109c13
commit
3c3f5436b4
|
@ -0,0 +1,27 @@
|
|||
from test_plus.test import TestCase
|
||||
from mhackspace.users.models import Membership
|
||||
from mhackspace.users.models import User
|
||||
from django.contrib.auth.models import Group
|
||||
|
||||
from mhackspace.subscriptions.management.commands.update_membership_status import update_subscriptions
|
||||
|
||||
# this needs mocking
|
||||
class TestTasks(TestCase):
|
||||
def setUp(self):
|
||||
self.user1 = self.make_user('u1')
|
||||
self.user2 = self.make_user('u2')
|
||||
self.group = Group(name='members')
|
||||
self.group.save()
|
||||
|
||||
def test_refresh_subscriptions(self):
|
||||
membership_count = Membership.objects.all().delete()
|
||||
user_count = User.objects.all().count()
|
||||
membership_count = Membership.objects.all().count()
|
||||
self.assertEquals(0, membership_count)
|
||||
self.assertEquals(2, user_count)
|
||||
|
||||
update_subscriptions(provider_name='gocardless')
|
||||
|
||||
membership_count = Membership.objects.all().count()
|
||||
self.assertEquals(2, membership_count)
|
||||
self.assertEquals(2, user_count)
|
|
@ -1,11 +1,14 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals, absolute_import
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from django.contrib.auth.models import Group
|
||||
from django.utils.dateparse import parse_datetime
|
||||
from mhackspace.users.models import Membership
|
||||
from mhackspace.users.models import MEMBERSHIP_CANCELLED, MEMBERSHIP_ACTIVE
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def create_or_update_membership(user, signup_details, complete=False):
|
||||
start_date = signup_details.get('start_date')
|
||||
|
@ -34,9 +37,13 @@ def create_or_update_membership(user, signup_details, complete=False):
|
|||
return False # sign up not completed
|
||||
|
||||
# add user to group on success
|
||||
|
||||
if user:
|
||||
try:
|
||||
group = Group.objects.get(name='members')
|
||||
user.groups.add(group)
|
||||
except:
|
||||
logger.error('Members group does not exist')
|
||||
return True # Sign up finished
|
||||
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@ def update_subscriptions(provider_name):
|
|||
provider = select_provider('gocardless')
|
||||
|
||||
Membership.objects.all().delete()
|
||||
subscriptions = []
|
||||
|
||||
group = Group.objects.get(name='members')
|
||||
|
||||
|
@ -26,10 +25,10 @@ def update_subscriptions(provider_name):
|
|||
except User.DoesNotExist:
|
||||
user_model = None
|
||||
|
||||
create_or_update_membership(user=user_model,
|
||||
create_or_update_membership(
|
||||
user=user_model,
|
||||
signup_details=sub,
|
||||
complete=True)
|
||||
yield model_to_dict(subscriptions[-1])
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
@ -4,5 +4,4 @@ from mhackspace.subscriptions.management.commands.update_membership_status impor
|
|||
|
||||
@shared_task
|
||||
def update_users_memebership_status():
|
||||
for user in update_subscriptions(provider_name='gocardless'):
|
||||
continue
|
||||
update_subscriptions(provider_name='gocardless')
|
||||
|
|
Loading…
Reference in New Issue