def test__save_raises_AttributeError(self): request = MagicMock() pods = self.make_pods() data = self.make_data(pods) form = ComposeMachineForPodsForm(request=request, data=data, pods=pods) self.assertTrue(form.is_valid()) self.assertRaises(AttributeError, form.save)
def test_compose_uses_commit_forms_second(self): request = MagicMock() pods = self.make_pods() # Make it skip all pods. for pod in pods: pod.capabilities = [Capabilities.OVER_COMMIT] pod.save() data = self.make_data(pods) form = ComposeMachineForPodsForm(request=request, data=data, pods=pods) mock_form_compose = self.patch(ComposeMachineForm, 'compose') mock_form_compose.side_effect = [ factory.make_exception(), factory.make_exception(), factory.make_exception(), None] self.assertTrue(form.is_valid()) form.compose() self.assertThat(mock_form_compose, MockCallsMatch( call( skip_commissioning=True, creation_type=NODE_CREATION_TYPE.DYNAMIC), call( skip_commissioning=True, creation_type=NODE_CREATION_TYPE.DYNAMIC), call( skip_commissioning=True, creation_type=NODE_CREATION_TYPE.DYNAMIC)))
def test_clean_adds_error_for_no_matching_constraints(self): request = MagicMock() pods = self.make_pods() for pod in pods: pod.architectures = ["Not vaild architecture"] pod.save() data = self.make_data(pods) form = ComposeMachineForPodsForm(request=request, data=data, pods=pods) self.assertFalse(form.is_valid())
def test__sets_up_pod_forms_based_on_pods(self): request = MagicMock() pods = self.make_pods() data = self.make_data(pods) form = ComposeMachineForPodsForm(request=request, data=data, pods=pods) self.assertTrue(form.is_valid()) self.assertThat(form.pod_forms, MatchesListwise([ MatchesAll( IsInstance(ComposeMachineForm), MatchesStructure( request=Equals(request), data=Equals(data), pod=Equals(pod))) for pod in pods ]))