move definition of registration view and user profile model to runtest script

This commit is contained in:
Mateusz Sikora 2014-05-05 17:57:47 +02:00
parent 6e86871f58
commit 1cf6052a31
2 changed files with 42 additions and 38 deletions

View File

@ -6,6 +6,48 @@ sys.path.insert(0, test_dir)
from django.test.utils import get_runner from django.test.utils import get_runner
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.sites.models import RequestSite
from django.contrib.sites.models import Site
from django.db import models
from registration.models import RegistrationProfile
from registration.backends.default.views import RegistrationView as BaseRegistrationView
from registration import signals
"""
create user profile model
"""
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
newsletter_subscribe = models.BooleanField(default=False)
class Meta:
app_label = 'rest_auth'
settings.REST_PROFILE_MODULE = UserProfile
"""
overwrite register to avoid sending email
"""
class RegistrationView(BaseRegistrationView):
def register(self, request, **cleaned_data):
username, email, password = cleaned_data['username'], cleaned_data['email'], cleaned_data['password1']
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(username, email,
password, site, send_email=False)
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
return new_user
settings.REST_REGISTRATION_BACKEND = 'rest_auth.runtests.RegistrationView'
def runtests(): def runtests():
TestRunner = get_runner(settings) TestRunner = get_runner(settings)

View File

@ -13,49 +13,11 @@ from django.test.client import Client, MULTIPART_CONTENT
from django.test import TestCase from django.test import TestCase
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.sites.models import RequestSite
from django.contrib.sites.models import Site
from django.db import models
from registration.models import RegistrationProfile from registration.models import RegistrationProfile
from registration.backends.default.views import RegistrationView as BaseRegistrationView
from registration import signals
from rest_framework.serializers import _resolve_model from rest_framework.serializers import _resolve_model
"""
create user profile model
"""
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
newsletter_subscribe = models.BooleanField(default=False)
class Meta:
app_label = 'rest_auth'
settings.REST_PROFILE_MODULE = UserProfile
"""
overwrite register to avoid sending email
"""
class RegistrationView(BaseRegistrationView):
def register(self, request, **cleaned_data):
username, email, password = cleaned_data['username'], cleaned_data['email'], cleaned_data['password1']
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(username, email,
password, site, send_email=False)
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
return new_user
settings.REST_REGISTRATION_BACKEND = 'rest_auth.tests.RegistrationView'
class APIClient(Client): class APIClient(Client):
def patch(self, path, data='', content_type=MULTIPART_CONTENT, follow=False, **extra): def patch(self, path, data='', content_type=MULTIPART_CONTENT, follow=False, **extra):