~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

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

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
class TestBulkNodeActionForm(MAASServerTestCase):
35
35
 
36
36
    def test_performs_action(self):
37
 
        node1 = factory.make_node()
38
 
        node2 = factory.make_node()
39
 
        node3 = factory.make_node()
 
37
        node1 = factory.make_Node()
 
38
        node2 = factory.make_Node()
 
39
        node3 = factory.make_Node()
40
40
        system_id_to_delete = [node1.system_id, node2.system_id]
41
41
        form = BulkNodeActionForm(
42
42
            user=factory.make_admin(),
59
59
        error_text = factory.make_string(prefix="NodeActionError")
60
60
        exc = NodeActionError(error_text)
61
61
        self.patch(StartNode, "execute").side_effect = exc
62
 
        user = factory.make_user()
63
 
        factory.make_sshkey(user)
64
 
        node = factory.make_node(status=NODE_STATUS.READY, owner=user)
 
62
        user = factory.make_User()
 
63
        factory.make_SSHKey(user)
 
64
        node = factory.make_Node(status=NODE_STATUS.READY, owner=user)
65
65
        form = BulkNodeActionForm(
66
66
            user=user,
67
67
            data=dict(
91
91
            [choice for choice in choices if choice[0] == 'set_zone'])
92
92
 
93
93
    def test_nonadmin_is_not_offered_bulk_node_change(self):
94
 
        form = BulkNodeActionForm(user=factory.make_user())
 
94
        form = BulkNodeActionForm(user=factory.make_User())
95
95
        choices = form.fields['action'].choices
96
96
        self.assertEqual(
97
97
            [],
98
98
            [choice for choice in choices if choice[0] == 'set_zone'])
99
99
 
100
100
    def test_gives_stat_when_not_applicable(self):
101
 
        node1 = factory.make_node(status=NODE_STATUS.NEW)
102
 
        node2 = factory.make_node(status=NODE_STATUS.FAILED_COMMISSIONING)
 
101
        node1 = factory.make_Node(status=NODE_STATUS.NEW)
 
102
        node2 = factory.make_Node(status=NODE_STATUS.FAILED_COMMISSIONING)
103
103
        system_id_for_action = [node1.system_id, node2.system_id]
104
104
        form = BulkNodeActionForm(
105
105
            user=factory.make_admin(),
113
113
            [done, not_actionable, not_permitted])
114
114
 
115
115
    def test_gives_stat_when_no_permission(self):
116
 
        user = factory.make_user()
117
 
        node = factory.make_node(
118
 
            status=NODE_STATUS.DEPLOYED, owner=factory.make_user())
 
116
        user = factory.make_User()
 
117
        node = factory.make_Node(
 
118
            status=NODE_STATUS.DEPLOYED, owner=factory.make_User())
119
119
        system_id_for_action = [node.system_id]
120
120
        form = BulkNodeActionForm(
121
121
            user=user,
129
129
            [done, not_actionable, not_permitted])
130
130
 
131
131
    def test_gives_stat_when_action_is_inhibited(self):
132
 
        node = factory.make_node(
133
 
            status=NODE_STATUS.ALLOCATED, owner=factory.make_user())
 
132
        node = factory.make_Node(
 
133
            status=NODE_STATUS.ALLOCATED, owner=factory.make_User())
134
134
        form = BulkNodeActionForm(
135
135
            user=factory.make_admin(),
136
136
            data=dict(
152
152
            form._errors['system_id'])
153
153
 
154
154
    def test_rejects_invalid_system_ids(self):
155
 
        node = factory.make_node()
 
155
        node = factory.make_Node()
156
156
        system_id_to_delete = [node.system_id, "wrong-system_id"]
157
157
        form = BulkNodeActionForm(
158
158
            user=factory.make_admin(),
167
167
    def test_rejects_if_no_action(self):
168
168
        form = BulkNodeActionForm(
169
169
            user=factory.make_admin(),
170
 
            data=dict(system_id=[factory.make_node().system_id]))
 
170
            data=dict(system_id=[factory.make_Node().system_id]))
171
171
        self.assertFalse(form.is_valid(), form._errors)
172
172
 
173
173
    def test_rejects_if_invalid_action(self):
175
175
            user=factory.make_admin(),
176
176
            data=dict(
177
177
                action="invalid-action",
178
 
                system_id=[factory.make_node().system_id]))
 
178
                system_id=[factory.make_Node().system_id]))
179
179
        self.assertFalse(form.is_valid(), form._errors)
180
180
 
181
181
    def test_set_zone_sets_zone_on_node(self):
182
 
        node = factory.make_node()
183
 
        zone = factory.make_zone()
 
182
        node = factory.make_Node()
 
183
        zone = factory.make_Zone()
184
184
        form = BulkNodeActionForm(
185
185
            user=factory.make_admin(),
186
186
            data={
194
194
        self.assertEqual(zone, node.zone)
195
195
 
196
196
    def test_set_zone_does_not_work_if_not_admin(self):
197
 
        node = factory.make_node()
 
197
        node = factory.make_Node()
198
198
        form = BulkNodeActionForm(
199
 
            user=factory.make_user(),
 
199
            user=factory.make_User(),
200
200
            data={
201
201
                'action': SetZoneBulkAction.name,
202
 
                'zone': factory.make_zone().name,
 
202
                'zone': factory.make_Zone().name,
203
203
                'system_id': [node.system_id],
204
204
            })
205
205
        self.assertFalse(form.is_valid())
235
235
        self.assertNotIn('zone', form.fields)
236
236
 
237
237
    def test_set_zone_leaves_unselected_nodes_alone(self):
238
 
        unselected_node = factory.make_node()
 
238
        unselected_node = factory.make_Node()
239
239
        original_zone = unselected_node.zone
240
240
        form = BulkNodeActionForm(
241
241
            user=factory.make_admin(),
242
242
            data={
243
243
                'action': SetZoneBulkAction.name,
244
 
                'zone': factory.make_zone().name,
245
 
                'system_id': [factory.make_node().system_id],
 
244
                'zone': factory.make_Zone().name,
 
245
                'system_id': [factory.make_Node().system_id],
246
246
            })
247
247
        self.assertTrue(form.is_valid(), form._errors)
248
248
        self.assertEqual((1, 0, 0), form.save())