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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import unicode_literals, absolute_import
|
from __future__ import unicode_literals, absolute_import
|
||||||
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
from django.utils.dateparse import parse_datetime
|
from django.utils.dateparse import parse_datetime
|
||||||
from mhackspace.users.models import Membership
|
from mhackspace.users.models import Membership
|
||||||
from mhackspace.users.models import MEMBERSHIP_CANCELLED, MEMBERSHIP_ACTIVE
|
from mhackspace.users.models import MEMBERSHIP_CANCELLED, MEMBERSHIP_ACTIVE
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def create_or_update_membership(user, signup_details, complete=False):
|
def create_or_update_membership(user, signup_details, complete=False):
|
||||||
start_date = signup_details.get('start_date')
|
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
|
return False # sign up not completed
|
||||||
|
|
||||||
# add user to group on success
|
# add user to group on success
|
||||||
|
|
||||||
if user:
|
if user:
|
||||||
|
try:
|
||||||
group = Group.objects.get(name='members')
|
group = Group.objects.get(name='members')
|
||||||
user.groups.add(group)
|
user.groups.add(group)
|
||||||
|
except:
|
||||||
|
logger.error('Members group does not exist')
|
||||||
return True # Sign up finished
|
return True # Sign up finished
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ def update_subscriptions(provider_name):
|
||||||
provider = select_provider('gocardless')
|
provider = select_provider('gocardless')
|
||||||
|
|
||||||
Membership.objects.all().delete()
|
Membership.objects.all().delete()
|
||||||
subscriptions = []
|
|
||||||
|
|
||||||
group = Group.objects.get(name='members')
|
group = Group.objects.get(name='members')
|
||||||
|
|
||||||
|
@ -26,10 +25,10 @@ def update_subscriptions(provider_name):
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
user_model = None
|
user_model = None
|
||||||
|
|
||||||
create_or_update_membership(user=user_model,
|
create_or_update_membership(
|
||||||
|
user=user_model,
|
||||||
signup_details=sub,
|
signup_details=sub,
|
||||||
complete=True)
|
complete=True)
|
||||||
yield model_to_dict(subscriptions[-1])
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
|
|
|
@ -4,5 +4,4 @@ from mhackspace.subscriptions.management.commands.update_membership_status impor
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def update_users_memebership_status():
|
def update_users_memebership_status():
|
||||||
for user in update_subscriptions(provider_name='gocardless'):
|
update_subscriptions(provider_name='gocardless')
|
||||||
continue
|
|
||||||
|
|
Loading…
Reference in New Issue