File: test_one_step_workflow.py

package info (click to toggle)
python-django-registration 3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 704 kB
  • sloc: python: 1,503; makefile: 86
file content (71 lines) | stat: -rw-r--r-- 2,270 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
"""
Tests for the one-step registration workflow.

"""

from django.apps import apps
from django.contrib.auth import get_user_model
from django.test import modify_settings, override_settings
from django.urls import reverse

from django_registration import signals

from .base import WorkflowTestCase


@modify_settings(INSTALLED_APPS={"remove": "django_registration"})
@override_settings(ROOT_URLCONF="django_registration.backends.one_step.urls")
class OneStepWorkflowViewTests(WorkflowTestCase):
    """
    Tests for the one-step workflow.

    """

    def test_registration(self):
        """
        Registration creates a new account and logs the user in.

        """
        user_model = get_user_model()
        with self.assertSignalSent(
            signals.user_registered, required_kwargs=["user", "request"]
        ) as cm:
            resp = self.client.post(
                reverse("django_registration_register"), data=self.valid_data
            )
            self.assertEqual(
                cm.received_kwargs["user"].get_username(),
                self.valid_data[user_model.USERNAME_FIELD],
            )

        self.assertRedirects(resp, reverse("django_registration_complete"))

        new_user = user_model.objects.get(**self.user_lookup_kwargs)
        self.assertTrue(new_user.check_password(self.valid_data["password1"]))
        self.assertEqual(new_user.email, self.valid_data["email"])

        # New user must be active.
        self.assertTrue(new_user.is_active)

        # New user must be logged in.
        resp = self.client.get(reverse("django_registration_register"))
        self.assertTrue(resp.context["user"].is_authenticated)


@override_settings(AUTH_USER_MODEL="tests.CustomUser")
@override_settings(ROOT_URLCONF="tests.urls.custom_user_one_step")
class OneStepWorkflowCustomUserTests(OneStepWorkflowViewTests):
    """
    Runs the one-step workflow's test suite, but with a custom user model.

    """

    def test_custom_user_configured(self):
        """
        Asserts that the user model in use is the custom user model
        defined in this test suite.

        """
        user_model = get_user_model()
        custom_user = apps.get_model("tests", "CustomUser")
        assert user_model is custom_user