aboutsummaryrefslogtreecommitdiffstats
path: root/alphabetlearning/users/tests/test_managers.py
diff options
context:
space:
mode:
Diffstat (limited to 'alphabetlearning/users/tests/test_managers.py')
-rw-r--r--alphabetlearning/users/tests/test_managers.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/alphabetlearning/users/tests/test_managers.py b/alphabetlearning/users/tests/test_managers.py
new file mode 100644
index 0000000..1e5a5e3
--- /dev/null
+++ b/alphabetlearning/users/tests/test_managers.py
@@ -0,0 +1,55 @@
+from io import StringIO
+
+import pytest
+from django.core.management import call_command
+
+from alphabetlearning.users.models import User
+
+
+@pytest.mark.django_db()
+class TestUserManager:
+ def test_create_user(self):
+ user = User.objects.create_user(
+ email="john@example.com",
+ password="something-r@nd0m!", # noqa: S106
+ )
+ assert user.email == "john@example.com"
+ assert not user.is_staff
+ assert not user.is_superuser
+ assert user.check_password("something-r@nd0m!")
+ assert user.username is None
+
+ def test_create_superuser(self):
+ user = User.objects.create_superuser(
+ email="admin@example.com",
+ password="something-r@nd0m!", # noqa: S106
+ )
+ assert user.email == "admin@example.com"
+ assert user.is_staff
+ assert user.is_superuser
+ assert user.username is None
+
+ def test_create_superuser_username_ignored(self):
+ user = User.objects.create_superuser(
+ email="test@example.com",
+ password="something-r@nd0m!", # noqa: S106
+ )
+ assert user.username is None
+
+
+@pytest.mark.django_db()
+def test_createsuperuser_command():
+ """Ensure createsuperuser command works with our custom manager."""
+ out = StringIO()
+ command_result = call_command(
+ "createsuperuser",
+ "--email",
+ "henry@example.com",
+ interactive=False,
+ stdout=out,
+ )
+
+ assert command_result is None
+ assert out.getvalue() == "Superuser created successfully.\n"
+ user = User.objects.get(email="henry@example.com")
+ assert not user.has_usable_password()