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'
|
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()
|
hep_client = HepClient()
|
||||||
|
|
||||||
try:
|
user = User.objects.get_or_create_hep_user(user_data) # todo: test
|
||||||
user = User.objects.get(hep_id=user_data['id'])
|
|
||||||
except User.DoesNotExist:
|
|
||||||
user = User.objects.create_user_from_hep(user_data)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not hep_client.is_email_verified(user_data):
|
if not hep_client.is_email_verified(user_data):
|
||||||
|
|
@ -23,18 +20,18 @@ def handle_user_and_verify_products(user_data, ):
|
||||||
except HepClientException:
|
except HepClientException:
|
||||||
return user, UNKNOWN_ERROR
|
return user, UNKNOWN_ERROR
|
||||||
|
|
||||||
license = License.objects.get_active_license_for_user(user)
|
# license = License.objects.get_active_license_for_user(user)
|
||||||
|
#
|
||||||
if not license:
|
# if not license:
|
||||||
license, error_msg = check_and_create_licenses(hep_client, user)
|
# license, error_msg = check_and_create_licenses(hep_client, user)
|
||||||
|
#
|
||||||
if error_msg:
|
# if error_msg:
|
||||||
return user, error_msg
|
# return user, error_msg
|
||||||
|
#
|
||||||
create_role_for_user(user, license.for_role.key)
|
# create_role_for_user(user, license.for_role.key)
|
||||||
|
#
|
||||||
if not license.is_valid():
|
# if not license.is_valid():
|
||||||
return user, NO_VALID_LICENSE
|
# return user, NO_VALID_LICENSE
|
||||||
|
|
||||||
return user, None
|
return user, None
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,15 @@ class UserManager(DjangoUserManager):
|
||||||
|
|
||||||
return user
|
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):
|
class LicenseManager(models.Manager):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
"updated_at": "2019-11-26 17:04:29",
|
"updated_at": "2019-11-26 17:04:29",
|
||||||
"created_in": "hep verlag",
|
"created_in": "hep verlag",
|
||||||
"email": "1heptest19072018@mailinator.com",
|
"email": "1heptest19072018@mailinator.com",
|
||||||
"firstname": "Test",
|
"first_name": "Test",
|
||||||
"lastname": "Test",
|
"last_name": "Test",
|
||||||
"prefix": "Frau",
|
"prefix": "Frau",
|
||||||
"gender": 2,
|
"gender": 2,
|
||||||
"store_id": 1,
|
"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