Files
dashboard-cpsp-executive/backend/apps/jobs/tests.py
T
2026-09-08 16:17:29 +07:00

58 lines
2.0 KiB
Python

from django.core.management.base import CommandError
from django.test import TestCase, override_settings
from apps.accounts.models import User
from apps.farms.models import Cycle, Site
from django.core.management import call_command
@override_settings(
BOOTSTRAP_ADMIN_USER="admin",
BOOTSTRAP_ADMIN_PASSWORD="Pr04dm1n",
BOOTSTRAP_STAFF_USER="",
BOOTSTRAP_STAFF_PASSWORD="",
)
class BootstrapAdminTests(TestCase):
def test_creates_break_glass_superuser_without_demo_data(self):
call_command("bootstrap_admin")
user = User.objects.get(user_login="admin")
self.assertEqual(user.user_name, "admin")
self.assertEqual(user.status, User.STATUS_SUPERUSER)
self.assertTrue(user.is_superuser)
self.assertTrue(user.check_password("Pr04dm1n"))
self.assertFalse(Site.objects.exists())
self.assertFalse(Cycle.objects.exists())
def test_requires_password(self):
with self.settings(BOOTSTRAP_ADMIN_PASSWORD=""):
with self.assertRaises(CommandError):
call_command("bootstrap_admin")
@override_settings(
BOOTSTRAP_STAFF_USER="staff",
BOOTSTRAP_STAFF_PASSWORD="St4ff!",
)
def test_creates_gm_when_configured(self):
call_command("bootstrap_admin")
staff = User.objects.get(user_login="staff")
self.assertEqual(staff.user_name, "staff")
self.assertEqual(staff.status, User.STATUS_GM)
self.assertFalse(staff.is_superuser)
self.assertTrue(staff.check_password("St4ff!"))
@override_settings(
BOOTSTRAP_STAFF_USER="staff",
BOOTSTRAP_STAFF_PASSWORD="",
)
def test_requires_staff_password_when_user_set(self):
with self.assertRaises(CommandError):
call_command("bootstrap_admin")
@override_settings(
BOOTSTRAP_STAFF_USER="admin",
BOOTSTRAP_STAFF_PASSWORD="St4ff!",
)
def test_rejects_staff_same_as_admin(self):
with self.assertRaises(CommandError):
call_command("bootstrap_admin")