~maas-committers/maas/trunk

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_node.py

[r=allenap][bug=][author=jtv] Make commissioning nodes download their commissioning scripts (such as lshw) from the metadata service.  And componentize the big commissioning script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
from datetime import timedelta
16
16
import random
17
17
 
18
 
from django.conf import settings
19
18
from django.core.exceptions import (
20
19
    PermissionDenied,
21
20
    ValidationError,
50
49
    map_enum,
51
50
    )
52
51
from maastesting.testcase import TestCase as DjangoLessTestCase
 
52
from metadataserver import commissioning
53
53
from metadataserver.enum import COMMISSIONING_STATUS
54
54
from metadataserver.models import (
55
55
    NodeCommissionResult,
61
61
    AllMatch,
62
62
    Contains,
63
63
    Equals,
64
 
    FileContains,
65
64
    MatchesAll,
66
65
    MatchesListwise,
67
66
    Not,
485
484
 
486
485
    def test_start_commissioning_sets_user_data(self):
487
486
        node = factory.make_node(status=NODE_STATUS.DECLARED)
 
487
        user_data = factory.getRandomString().encode('ascii')
 
488
        self.patch(
 
489
            commissioning.user_data, 'generate_user_data'
 
490
            ).return_value = user_data
488
491
        node.start_commissioning(factory.make_admin())
489
 
        path = settings.COMMISSIONING_SCRIPT
490
 
        self.assertThat(
491
 
            path, FileContains(NodeUserData.objects.get_user_data(node)))
492
 
 
493
 
    def test_missing_commissioning_script(self):
494
 
        self.patch(
495
 
            settings, 'COMMISSIONING_SCRIPT',
496
 
            '/etc/' + factory.getRandomString(10))
497
 
        node = factory.make_node(status=NODE_STATUS.DECLARED)
498
 
        self.assertRaises(
499
 
            ValidationError,
500
 
            node.start_commissioning, factory.make_admin())
 
492
        self.assertEqual(user_data, NodeUserData.objects.get_user_data(node))
501
493
 
502
494
    def test_start_commissioning_clears_node_commissioning_results(self):
503
495
        node = factory.make_node(status=NODE_STATUS.DECLARED)