def test_default_node_filter(self, obj_mock): nodes_obj_mock = obj_mock.NodeCollection cluster = mock.MagicMock() nodes_list = [ { 'id': 1, 'pending_deletion': False, 'pending_addition': False, 'status': 'provisioned', 'error_type': None }, { 'id': 2, 'pending_deletion': False, 'pending_addition': False, 'status': 'ready', 'error_type': None }, { 'id': 3, 'pending_deletion': False, 'pending_addition': False, 'status': 'stopped', 'error_type': None }, { 'id': 4, 'pending_deletion': True, 'pending_addition': False, 'status': 'stopped', 'error_type': None }, { 'id': 5, 'pending_deletion': False, 'pending_addition': True, 'status': 'stopped', 'error_type': None }, ] nodes_obj_mock.to_list.return_value = nodes_list manager._get_nodes_to_run(cluster, None) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', [1, 2, 3] )
def test_get_all_nodes_with_empty_ids(self, yaql_mock, obj_mock): nodes_obj_mock = obj_mock.NodeCollection cluster = mock.MagicMock() node_ids = [] node_filter = '$.pending_deletion' manager._get_nodes_to_run(cluster, node_filter, node_ids) self.assertEqual(0, nodes_obj_mock.filter_by_list.call_count) self.assertEqual(0, yaql_mock.create_context.call_count)
def test_ids_has_high_priority_then_node_filter(self, yaql_mock, obj_mock): nodes_obj_mock = obj_mock.NodeCollection cluster = mock.MagicMock() node_ids = [1, 2] node_filter = '$.pending_deletion' manager._get_nodes_to_run(cluster, node_filter, node_ids) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', node_ids) self.assertEqual(0, yaql_mock.create_context.call_count)
def test_ids_has_high_priority_then_node_filter(self, yaql_mock, obj_mock): nodes_obj_mock = obj_mock.NodeCollection cluster = mock.MagicMock() node_ids = [1, 2] node_filter = '$.pending_deletion' manager._get_nodes_to_run(cluster, node_filter, node_ids) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', node_ids ) self.assertEqual(0, yaql_mock.create_context.call_count)
def test_get_no_nodes_if_filter_returns_empty_list(self, obj_mock): nodes_obj_mock = obj_mock.NodeCollection cluster = mock.MagicMock() node_filter = '$.pending_deletion' nodes_list = [ {'id': 1, 'pending_deletion': False}, {'id': 2, 'pending_deletion': False} ] nodes_obj_mock.to_list.return_value = nodes_list manager._get_nodes_to_run(cluster, node_filter) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', [] )
def test_get_nodes_by_ids(self, objects_mock): nodes_obj_mock = objects_mock.NodeCollection cluster = mock.MagicMock() node_ids = [1, 2] filtered_nodes = manager._get_nodes_to_run(cluster, None, node_ids) nodes_obj_mock.filter_by.assert_called_once_with(None, cluster_id=cluster.id, online=True) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', node_ids) nodes_obj_mock.order_by.assert_called_once_with(mock.ANY, 'id') self.assertEqual(filtered_nodes, nodes_obj_mock.lock_for_update().all())
def test_get_nodes_by_ids(self, objects_mock): nodes_obj_mock = objects_mock.NodeCollection cluster = mock.MagicMock() node_ids = [1, 2] filtered_nodes = manager._get_nodes_to_run(cluster, None, node_ids) nodes_obj_mock.filter_by.assert_called_once_with( None, cluster_id=cluster.id, online=True ) nodes_obj_mock.filter_by_list.assert_called_once_with( mock.ANY, 'id', node_ids ) nodes_obj_mock.order_by.assert_called_once_with( mock.ANY, 'id' ) self.assertEqual( filtered_nodes, nodes_obj_mock.lock_for_update().all() )