Move methods to manager, add tests
This commit is contained in:
parent
549bf1ef28
commit
bfdd743afd
|
|
@ -9,13 +9,10 @@ UNKNOWN_ERROR = 'unknown_error'
|
|||
NO_VALID_LICENSE = 'no_valid_license'
|
||||
|
||||
|
||||
def handle_user_and_verify_products(user_data, ):
|
||||
def handle_user_and_verify_products(user_data):
|
||||
hep_client = HepClient()
|
||||
|
||||
try:
|
||||
user = User.objects.get(hep_id=user_data['id'])
|
||||
except User.DoesNotExist:
|
||||
user = User.objects.create_user_from_hep(user_data)
|
||||
user = User.objects.get_or_create_hep_user(user_data) # todo: test
|
||||
|
||||
try:
|
||||
if not hep_client.is_email_verified(user_data):
|
||||
|
|
@ -23,18 +20,18 @@ def handle_user_and_verify_products(user_data, ):
|
|||
except HepClientException:
|
||||
return user, UNKNOWN_ERROR
|
||||
|
||||
license = License.objects.get_active_license_for_user(user)
|
||||
|
||||
if not license:
|
||||
license, error_msg = check_and_create_licenses(hep_client, user)
|
||||
|
||||
if error_msg:
|
||||
return user, error_msg
|
||||
|
||||
create_role_for_user(user, license.for_role.key)
|
||||
|
||||
if not license.is_valid():
|
||||
return user, NO_VALID_LICENSE
|
||||
# license = License.objects.get_active_license_for_user(user)
|
||||
#
|
||||
# if not license:
|
||||
# license, error_msg = check_and_create_licenses(hep_client, user)
|
||||
#
|
||||
# if error_msg:
|
||||
# return user, error_msg
|
||||
#
|
||||
# create_role_for_user(user, license.for_role.key)
|
||||
#
|
||||
# if not license.is_valid():
|
||||
# return user, NO_VALID_LICENSE
|
||||
|
||||
return user, None
|
||||
|
||||
|
|
|
|||
|
|
@ -126,6 +126,15 @@ class UserManager(DjangoUserManager):
|
|||
|
||||
return user
|
||||
|
||||
def get_or_create_hep_user(self, user_data):
|
||||
|
||||
try:
|
||||
user = self.get(hep_id=user_data['id'])
|
||||
except self.model.DoesNotExist:
|
||||
user = self.create_user_from_hep(user_data)
|
||||
|
||||
return user
|
||||
|
||||
|
||||
class LicenseManager(models.Manager):
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
"updated_at": "2019-11-26 17:04:29",
|
||||
"created_in": "hep verlag",
|
||||
"email": "1heptest19072018@mailinator.com",
|
||||
"firstname": "Test",
|
||||
"lastname": "Test",
|
||||
"first_name": "Test",
|
||||
"last_name": "Test",
|
||||
"prefix": "Frau",
|
||||
"gender": 2,
|
||||
"store_id": 1,
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
from datetime import timedelta
|
||||
from unittest.mock import patch
|
||||
|
||||
import requests
|
||||
from django.conf import settings
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
from django.test import TestCase, RequestFactory
|
||||
from django.utils import timezone
|
||||
from graphene.test import Client
|
||||
|
||||
from api.schema_public import schema
|
||||
from core.factories import UserFactory
|
||||
from users.tests.mock_hep_data_factory import MockResponse, ME_DATA, VALID_STUDENT_ORDERS, VALID_TEACHERS_ORDERS, \
|
||||
NOT_CONFIRMED_ME
|
||||
from users.factories import LicenseFactory
|
||||
from users.models import Role, User, SchoolClass, License, UserData
|
||||
|
||||
TOKEN = 'abcd12345!'
|
||||
|
||||
MYSKILLBOX_GROUP_ID_ME_DATA = ME_DATA.copy()
|
||||
MYSKILLBOX_GROUP_ID_ME_DATA['group_id'] = settings.HEP_MYSKILLBOX_GROUP_ID
|
||||
|
||||
|
||||
class UserManagerTests(TestCase):
|
||||
def setUp(self):
|
||||
self.user = UserFactory(username=ME_DATA['email'], email=ME_DATA['email'], hep_id=ME_DATA['id'])
|
||||
|
||||
def test_get_existing_user(self):
|
||||
|
||||
user_data = {
|
||||
'id': ME_DATA['id']
|
||||
}
|
||||
|
||||
user = User.objects.get_or_create_hep_user(user_data)
|
||||
self.assertEqual(user.id, self.user.id)
|
||||
|
||||
def test_create_new_user(self):
|
||||
|
||||
new_hep_id = ME_DATA['id'] + 1
|
||||
|
||||
try:
|
||||
User.objects.get(hep_id=new_hep_id)
|
||||
self.fail('UserManagerTests.test_create_new_user failed: User already exists!')
|
||||
except User.DoesNotExist:
|
||||
pass
|
||||
|
||||
user_data = {
|
||||
'id': new_hep_id,
|
||||
'first_name': ME_DATA['first_name'],
|
||||
'last_name': ME_DATA['last_name'],
|
||||
'email': ME_DATA['email'],
|
||||
}
|
||||
|
||||
user = User.objects.get_or_create_hep_user(user_data)
|
||||
self.assertEqual(user.hep_id, new_hep_id)
|
||||
Loading…
Reference in New Issue