~allenap/maas/xxx-a-thon

« back to all changes in this revision

Viewing changes to src/maasserver/rpc/tests/test_nodes.py

  • Committer: Gavin Panella
  • Date: 2016-03-22 21:14:34 UTC
  • mfrom: (4657.1.157 maas)
  • Revision ID: gavin.panella@canonical.com-20160322211434-xzuovio86zvzo2js
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
    RunningEventLoopFixture,
34
34
)
35
35
from maasserver.testing.factory import factory
36
 
from maasserver.testing.orm import reload_object
37
36
from maasserver.testing.testcase import MAASServerTestCase
38
 
from maasserver.utils.orm import post_commit_hooks
 
37
from maasserver.utils.orm import (
 
38
    post_commit_hooks,
 
39
    reload_object,
 
40
)
39
41
from maastesting.twisted import always_succeed_with
40
42
from provisioningserver.drivers import gen_power_types
41
43
from provisioningserver.rpc.cluster import DescribePowerTypes
151
153
                architecture, power_type, power_parameters,
152
154
                mac_addresses, hostname=hostname)
153
155
 
 
156
    def test__creates_node_with_explicit_domain(self):
 
157
        self.prepare_rack_rpc()
 
158
 
 
159
        mac_addresses = [
 
160
            factory.make_mac_address() for _ in range(3)]
 
161
        architecture = make_usable_architecture(self)
 
162
        hostname = factory.make_hostname()
 
163
        domain = factory.make_Domain()
 
164
        power_type = random.choice(self.power_types)['name']
 
165
        power_parameters = dumps({})
 
166
 
 
167
        node = create_node(
 
168
            architecture, power_type, power_parameters,
 
169
            mac_addresses, domain=domain.name, hostname=hostname)
 
170
 
 
171
        self.assertEqual(
 
172
            (
 
173
                architecture,
 
174
                power_type,
 
175
                {},
 
176
                domain.id,
 
177
                hostname,
 
178
            ),
 
179
            (
 
180
                node.architecture,
 
181
                node.power_type,
 
182
                node.power_parameters,
 
183
                node.domain.id,
 
184
                node.hostname,
 
185
            ))
 
186
        self.expectThat(node.id, Not(Is(None)))
 
187
        self.assertItemsEqual(
 
188
            mac_addresses,
 
189
            [nic.mac_address for nic in node.interface_set.all()])
 
190
 
 
191
    def test__create_node_fails_with_invalid_domain(self):
 
192
        self.prepare_rack_rpc()
 
193
 
 
194
        mac_addresses = [
 
195
            factory.make_mac_address() for _ in range(3)]
 
196
        architecture = make_usable_architecture(self)
 
197
        power_type = random.choice(self.power_types)['name']
 
198
        power_parameters = dumps({})
 
199
 
 
200
        with ExpectedException(ValidationError):
 
201
            create_node(
 
202
                architecture, power_type, power_parameters,
 
203
                mac_addresses, factory.make_name('domain'))
 
204
 
154
205
    def test__raises_validation_errors_for_invalid_data(self):
155
206
        self.prepare_rack_rpc()
156
207