56 lines
1.9 KiB
Python
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")
|