# -*- 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() )