58 lines
2.0 KiB
Python
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")
|