39
39
NODE_STATUS_CHOICES_DICT,
44
from maasserver.provisioning import get_provisioning_api_proxy
43
45
from maasserver.testing.enum import map_enum
44
46
from maasserver.testing.factory import factory
45
47
from maasserver.testing.testcase import TestCase
68
70
self.assertEqual(len(node.system_id), 41)
69
71
self.assertTrue(node.system_id.startswith('node-'))
71
def test_display_status(self):
73
def test_display_status_shows_default_status(self):
72
74
node = factory.make_node()
74
NODE_STATUS_CHOICES_DICT[NODE_STATUS.DEFAULT_STATUS],
76
NODE_STATUS_CHOICES_DICT[node.status],
77
node.display_status())
79
def test_display_status_for_allocated_node_shows_owner(self):
80
node = factory.make_node(
81
owner=factory.make_user(), status=NODE_STATUS.ALLOCATED)
83
"Allocated to %s" % node.owner.username,
75
84
node.display_status())
77
86
def test_add_node_with_token(self):
284
293
self.assertEqual(
285
294
None, Node.objects.get_available_node_for_acquisition(user))
296
def test_get_available_node_combines_constraint_with_availability(self):
297
user = factory.make_user()
298
node = self.make_node(factory.make_user())
301
Node.objects.get_available_node_for_acquisition(
302
user, {'name': node.system_id}))
304
def test_get_available_node_constrains_by_name(self):
305
user = factory.make_user()
306
nodes = [self.make_node() for counter in range(3)]
309
Node.objects.get_available_node_for_acquisition(
310
user, {'name': nodes[1].system_id}))
312
def test_get_available_node_returns_None_if_name_is_unknown(self):
313
user = factory.make_user()
316
Node.objects.get_available_node_for_acquisition(
317
user, {'name': factory.getRandomString()}))
287
319
def test_stop_nodes_stops_nodes(self):
288
320
user = factory.make_user()
289
321
node = self.make_node(user)
290
322
output = Node.objects.stop_nodes([node.system_id], user)
292
324
self.assertItemsEqual([node], output)
295
Node.objects.provisioning_proxy.power_status[node.system_id])
325
power_status = get_provisioning_api_proxy().power_status
326
self.assertEqual('stop', power_status[node.system_id])
297
328
def test_stop_nodes_ignores_uneditable_nodes(self):
298
329
nodes = [self.make_node(factory.make_user()) for counter in range(3)]
308
339
output = Node.objects.start_nodes([node.system_id], user)
310
341
self.assertItemsEqual([node], output)
313
Node.objects.provisioning_proxy.power_status[node.system_id])
342
power_status = get_provisioning_api_proxy().power_status
343
self.assertEqual('start', power_status[node.system_id])
315
345
def test_start_nodes_ignores_uneditable_nodes(self):
316
346
nodes = [self.make_node(factory.make_user()) for counter in range(3)]
490
520
self.assertTrue(set(SYSTEM_USERS).isdisjoint(usernames))
523
class SSHKeyManagerTest(TestCase):
524
"""Testing for the :class `SSHKeyManager` model manager."""
526
def test_get_keys_for_user_no_keys(self):
527
user = factory.make_user()
528
keys = SSHKey.objects.get_keys_for_user(user)
529
self.assertItemsEqual([], keys)
531
def test_get_keys_for_user_with_keys(self):
532
user1 = factory.make_user_with_keys(n_keys=3, username='user1')
534
factory.make_user_with_keys(n_keys=2)
535
keys = SSHKey.objects.get_keys_for_user(user1)
536
self.assertItemsEqual([
537
'ssh-rsa KEY user1-key-0',
538
'ssh-rsa KEY user1-key-1',
539
'ssh-rsa KEY user1-key-2',
493
543
class FileStorageTest(TestCase):
494
544
"""Testing of the :class:`FileStorage` model."""