Skip to content

Commit

Permalink
Merge pull request #23 from unlimitedlabs/user_worker_creation
Browse files Browse the repository at this point in the history
Autocreate worker objects when new users are registered.
  • Loading branch information
thisisdhaas committed Sep 24, 2015
2 parents f5ebb42 + abe054e commit 44d75d4
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
2 changes: 2 additions & 0 deletions orchestra/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Make sure our signal receivers get registered.
from orchestra import signals # noqa
9 changes: 9 additions & 0 deletions orchestra/signals.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from django.dispatch import receiver
from registration.signals import user_registered

from orchestra.models import Worker


@receiver(user_registered)
def add_worker_for_new_users(sender, user, request, **kwargs):
Worker.objects.create(user=user)
21 changes: 21 additions & 0 deletions orchestra/tests/test_models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
from registration.signals import user_registered

from orchestra.core.errors import ModelSaveError
from orchestra.models import Worker
from orchestra.models import WorkerCertification
from orchestra.tests.helpers import OrchestraTestCase
from orchestra.tests.helpers.fixtures import CertificationFactory
from orchestra.tests.helpers.fixtures import WorkerCertificationFactory
from orchestra.tests.helpers.fixtures import UserFactory
from orchestra.tests.helpers.fixtures import setup_models


Expand Down Expand Up @@ -36,3 +39,21 @@ def test_reviewer_requires_entry_level(self):
certification=certification,
worker=self.workers[0],
role=WorkerCertification.Role.REVIEWER)

def test_worker_autocreation(self):
""" When new users register, worker objects should be autocreated. """

# Create a user
user = UserFactory(username='test_registration_user',
password='test',
email='test_registration_user@test.com')

# There should be no worker yet
self.assertFalse(Worker.objects.filter(user=user).exists())

# Fake registering the user
user_registered.send(sender=self.__class__, user=user, request=None)

# Expect the worker object to be created
self.assertTrue(Worker.objects.filter(user=user).exists(),
'Worker not autocreated on User registration')

0 comments on commit 44d75d4

Please sign in to comment.