mybuddy/babybuddy/tests/tests_commands.py

76 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
from django.test import TransactionTestCase
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.management import call_command
from core.models import Child
class CommandsTestCase(TransactionTestCase):
def test_migrate(self):
call_command("migrate", verbosity=0)
self.assertIsInstance(
get_user_model().objects.get(username="admin"), get_user_model()
)
def test_fake(self):
call_command("migrate", verbosity=0)
call_command("fake", children=1, days=7, verbosity=0)
self.assertEqual(Child.objects.count(), 1)
call_command("fake", children=2, days=7, verbosity=0)
self.assertEqual(Child.objects.count(), 3)
def test_reset(self):
call_command("reset", verbosity=0, interactive=False)
self.assertIsInstance(
get_user_model().objects.get(username="admin"), get_user_model()
)
self.assertEqual(Child.objects.count(), 1)
def test_createuser(self):
call_command("migrate", verbosity=0)
call_command(
"createuser",
username="regularuser",
email="regularuser@test.test",
password="test",
verbosity=0,
)
user = get_user_model().objects.get(username="regularuser")
self.assertIsInstance(user, get_user_model())
self.assertTrue(user.is_superuser)
self.assertFalse(user.is_staff)
self.assertEqual(user.email, "regularuser@test.test")
call_command(
"createuser",
"--is-staff",
username="staffuser",
email="staffuser@test.test",
password="test",
verbosity=0,
)
user = get_user_model().objects.get(username="staffuser")
self.assertIsInstance(user, get_user_model())
self.assertTrue(user.is_superuser)
self.assertTrue(user.is_staff)
call_command(
"createuser",
"--read-only",
username="readonlyuser",
email="readonlyuser@test.test",
password="test",
verbosity=0,
)
user = get_user_model().objects.get(username="readonlyuser")
self.assertIsInstance(user, get_user_model())
self.assertFalse(user.is_superuser)
self.assertFalse(user.is_staff)
self.assertTrue(
user.groups.filter(
name=settings.BABY_BUDDY["READ_ONLY_GROUP_NAME"]
).exists()
)