11
11
__metaclass__ = type
14
from io import BytesIO
16
17
from django.conf import settings
18
from django.contrib.auth.models import User
17
19
from django.core.management import call_command
18
20
from maasserver.models import FileStorage
19
from maastesting import TestCase
21
from maasserver.testing.factory import factory
22
from maastesting.testcase import TestCase
22
25
class TestCommands(TestCase):
34
37
# The test is that we get here without errors.
40
def test_createadmin_requires_username(self):
43
SystemExit, call_command, 'createadmin', stderr=stderr)
44
command_output = stderr.getvalue().strip()
47
"Error: You must provide a username with --username.",
50
def test_createadmin_requires_password(self):
51
username = factory.getRandomString()
54
SystemExit, call_command, 'createadmin', username=username,
56
command_output = stderr.getvalue().strip()
59
"Error: You must provide a password with --password.",
62
def test_createadmin_creates_admin(self):
65
username = factory.getRandomString()
66
password = factory.getRandomString()
68
'createadmin', username=username, password=password,
69
stderr=stderr, stdout=stdout)
70
users = list(User.objects.filter(username=username))
72
self.assertEquals('', stderr.getvalue().strip())
73
self.assertEquals('', stdout.getvalue().strip())
74
self.assertEqual(1, len(users)) # One user with that name.
75
self.assertTrue(users[0].check_password(password))
76
self.assertTrue(users[0].is_superuser)
77
self.assertEqual('', users[0].email) # His email is empty.