import os from unittest import mock from django.test import TestCase from bookmarks.models import User from bookmarks.management.commands.create_initial_superuser import Command class TestCreateInitialSuperuserCommand(TestCase): @mock.patch.dict(os.environ, {'LD_SUPERUSER_NAME': 'john', 'LD_SUPERUSER_PASSWORD': 'password123'}) def test_create_with_password(self): Command().handle() self.assertEqual(1, User.objects.count()) user = User.objects.first() self.assertEqual('john', user.username) self.assertTrue(user.has_usable_password()) self.assertTrue(user.check_password('password123')) @mock.patch.dict(os.environ, {'LD_SUPERUSER_NAME': 'john'}) def test_create_without_password(self): Command().handle() self.assertEqual(1, User.objects.count()) user = User.objects.first() self.assertEqual('john', user.username) self.assertFalse(user.has_usable_password()) def test_create_without_options(self): Command().handle() self.assertEqual(0, User.objects.count()) @mock.patch.dict(os.environ, {'LD_SUPERUSER_NAME': 'john', 'LD_SUPERUSER_PASSWORD': 'password123'}) def test_create_multiple_times(self): Command().handle() Command().handle() Command().handle() self.assertEqual(1, User.objects.count())