Files
dashboard-cpsp/backend/apps/jobs/tests.py
T

56 lines
1.9 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_superadmin_without_demo_data(self):
call_command("bootstrap_admin")
user = User.objects.get(user_name="admin")
self.assertEqual(user.status, User.STATUS_SUPERADMIN)
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_staff_when_configured(self):
call_command("bootstrap_admin")
staff = User.objects.get(user_name="staff")
self.assertEqual(staff.status, User.STATUS_ACTIVE)
self.assertTrue(staff.is_staff)
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")