From 7c03cd3016880fb999b534b18a57314dfab9a87c Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Mon, 23 Mar 2020 17:37:19 +0000 Subject: [PATCH] custom user model in tests --- djangoldp/models.py | 5 ++++- djangoldp/tests/models.py | 16 +++++++++++----- djangoldp/tests/runner.py | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/djangoldp/models.py b/djangoldp/models.py index c61278ba..08452c91 100644 --- a/djangoldp/models.py +++ b/djangoldp/models.py @@ -1,4 +1,5 @@ import validators +from urllib.parse import urlparse from django.conf import settings from django.contrib.auth import get_user_model from django.db import models @@ -196,5 +197,7 @@ if 'djangoldp_account' not in settings.DJANGOLDP_PACKAGES: webid = '{0}{1}'.format(settings.BASE_URL, reverse_lazy('user-detail', kwargs={'pk': self.pk})) return webid - get_user_model()._meta.serializer_fields = ['@id'] + if get_user_model()._meta.serializer_fields is None: + get_user_model()._meta.serializer_fields = [] + get_user_model()._meta.serializer_fields.append('@id') get_user_model().webid = webid diff --git a/djangoldp/tests/models.py b/djangoldp/tests/models.py index 01f74515..50c53b75 100644 --- a/djangoldp/tests/models.py +++ b/djangoldp/tests/models.py @@ -1,11 +1,21 @@ from django.conf import settings -from django.contrib.auth import get_user_model +from django.contrib.auth.models import AbstractUser from django.db import models from django.utils.datetime_safe import date from djangoldp.models import Model +class User(AbstractUser, Model): + + class Meta(AbstractUser.Meta, Model.Meta): + serializer_fields = ['@id', 'username', 'first_name', 'last_name', 'email', 'userprofile', + 'conversation_set', 'circle_set'] + anonymous_perms = ['view', 'add'] + authenticated_perms = ['inherit', 'change'] + owner_perms = ['inherit'] + + class Skill(Model): title = models.CharField(max_length=255, blank=True, null=True) obligatoire = models.CharField(max_length=255) @@ -183,7 +193,3 @@ class Circle(Model): authenticated_perms = ["inherit"] rdf_type = 'hd:circle' depth = 1 - -get_user_model()._meta.serializer_fields = ['@id', 'username', 'first_name', 'last_name', 'email', 'userprofile', - 'conversation_set', 'circle_set'] -get_user_model()._meta.anonymous_perms = ['view', 'add'] diff --git a/djangoldp/tests/runner.py b/djangoldp/tests/runner.py index 7416c711..12162f6c 100644 --- a/djangoldp/tests/runner.py +++ b/djangoldp/tests/runner.py @@ -36,6 +36,7 @@ settings.configure(DEBUG=False, "control": "acl:Control" } }, + AUTH_USER_MODEL='tests.User', AUTHENTICATION_BACKENDS=( 'django.contrib.auth.backends.ModelBackend', 'guardian.backends.ObjectPermissionBackend'), ROOT_URLCONF='djangoldp.urls', -- GitLab