def test_stop(self): cloud_provider = MagicMock() cloud_provider.start_instance.return_value = u'test-id' cloud_provider.get_ips.return_value = ('127.0.0.1', '127.0.0.1') running_states = [True, True, True, True, True, False, False, False, False, False] def side_effect_is_instance_running(id): return running_states.pop() cloud_provider.is_instance_running.side_effect = side_effect_is_instance_running setup_provider = MagicMock() cluster = Cluster(config_cluster_name, config_cloud_name, cloud_provider, setup_provider, 1, 2, Configurator()) for node in cluster.frontend_nodes + cluster.compute_nodes: node.instance_id = u'test-id' cluster._storage = MagicMock() cluster.stop() cloud_provider.stop_instance.assert_called_with(u'test-id') cluster._storage.delete_cluster.assert_called_once_with(cluster.name)