def test_classify_resource_raw(self, mock): """test classify resource with a known set inserted in the mock""" self.init_users(mock) self.init_filters(mock) self.init_resources(mock) classify = ClassifyResources('/fakedir') tuple = classify.classify_resource_raw(classify.map.vms, 'region0') # Bad region self.assertEquals(len(tuple[0]), # community in region1 but not in region0 self.count_resources_by_tenant['cpi_4'] + # trial in region1 but not in region0 self.count_resources_by_tenant['cpi_5']) # Basic + other roles + no role self.assertEquals(len(tuple[1]), # basic self.count_resources_by_tenant['cpi_1'] + self.count_resources_by_tenant['cpi_2'] + # other type self.count_resources_by_tenant['cpi_8'] + # unknown type (no role) self.count_resources_by_tenant['cpi_7'] + self.count_resources_by_tenant['cpi_9']) # Projects with unknown user self.assertEquals(len(tuple[2]), self.count_resources_by_tenant['dpi_1'] + self.count_resources_by_tenant['1000']) # Projects with cloudid that does not exists self.assertEquals(len(tuple[3]), self.count_resources_by_tenant['fake'])
def test_classify_resource_raw(self, mock): """test classify resource with a known set inserted in the mock""" self.init_users(mock) self.init_filters(mock) self.init_resources(mock) classify = ClassifyResources('/fakedir') tuple = classify.classify_resource_raw(classify.map.vms, 'region0') # Bad region self.assertEquals( len(tuple[0]), # community in region1 but not in region0 self.count_resources_by_tenant['cpi_4'] + # trial in region1 but not in region0 self.count_resources_by_tenant['cpi_5']) # Basic + other roles + no role self.assertEquals( len(tuple[1]), # basic self.count_resources_by_tenant['cpi_1'] + self.count_resources_by_tenant['cpi_2'] + # other type self.count_resources_by_tenant['cpi_8'] + # unknown type (no role) self.count_resources_by_tenant['cpi_7'] + self.count_resources_by_tenant['cpi_9']) # Projects with unknown user self.assertEquals( len(tuple[2]), self.count_resources_by_tenant['dpi_1'] + self.count_resources_by_tenant['1000']) # Projects with cloudid that does not exists self.assertEquals(len(tuple[3]), self.count_resources_by_tenant['fake'])
def test_print_users_summary(self, mock): """This method only prints the results already calculated in process users, therefore this method only checks that execution ends without errors""" self.init_users(mock) self.init_filters(mock) classify = ClassifyResources('/fakedir', ['region0', 'region1']) classify.print_users_summary()
def test_classify_filter_projects(self, mock): """Check the filter_projects methods. The tenant-id that has filters and don't include the region, must be discarded. Project without filters or with the region's filter, should pass the filter""" self.init_users(mock) self.init_filters(mock) classify = ClassifyResources('/fakedir') projects = ['cpi_1', 'cpi_3', 'cpi_7', 'cpi_15'] filtered = classify.filter_projects(projects, 'region1') self.assertItemsEqual(filtered, ['cpi_1', 'cpi_7', 'cpi_15'])
def test_classify_resource(self, mock): """check classify resource, that classify_resource_raw is invoked with the right parameters; this is tested comparing the result with the VM resources, that must return the same numbers""" self.init_users(mock) self.init_filters(mock) self.init_resources(mock) classify = ClassifyResources('/fakedir') tuple1 = classify.classify_resource_raw(classify.map.vms, 'region0') tuple2 = classify.classify_resource('volumes', 'region0') for i in range(4): self.assertEquals(len(tuple1[i]), len(tuple2[i]))
def testConstructorRegions(self, mock): """check constructor with a list of regions as parameter""" classify = ClassifyResources('/fakedir', ['region0', 'region1']) self.assertTrue(mock.return_value.preload_regions.called) self.assertTrue(mock.return_value.filters.values.called) self.assertTrue(mock.return_value.users.values.called) self.assertTrue(mock.return_value.tenants.keys.called)
def testConstructorFilter(self, mock): """test constructor providing filters in the mock""" self.init_filters(mock) classify = ClassifyResources('/fakedir') self.assertEquals(classify.empty_filter, 3) self.assertEquals(classify.filter_by_region['region0'], 0) self.assertEquals(classify.filter_by_region['region1'], 1) self.assertEquals(classify.filter_by_region['region2'], 2)
def testConstructorOfflineMode(self, mock): """check constructor with offline_mode=True""" classify = ClassifyResources('/fakedir', offline_mode=True) mock.assert_called_with('/fakedir', objects_strategy=mock.USE_CACHE_OBJECTS_ONLY) self.assertFalse(mock.return_value.preload_regions.called) self.assertTrue(mock.return_value.filters.values.called) self.assertTrue(mock.return_value.users.values.called) self.assertTrue(mock.return_value.tenants.keys.called)
def testConstructorBasic(self, mock): """check constructor without parameters""" classify = ClassifyResources('/fakedir') mock.assert_called_with('/fakedir', objects_strategy=mock.USE_CACHE_OBJECTS) self.assertFalse(mock.return_value.preload_regions.called) self.assertTrue(mock.return_value.filters.values.called) self.assertTrue(mock.return_value.users.values.called) self.assertTrue(mock.return_value.tenants.keys.called)
def test_constructor_process_users(self, mock): """Test that the process_users method that is invoked from the constructor, fills correctly all the data""" self.init_users(mock) classify = ClassifyResources('/fakedir') self.assertEquals(classify.admin_users, {'7'}) self.assertEquals(classify.trial_users, {'5', '6'}) self.assertEquals(classify.community_users, {'3', '4'}) self.assertEquals(classify.basic_users, {'1', '2'}) self.assertEquals(classify.other_users, {'8'}) self.assertEquals(classify.not_found_users, {'9', '10'}) # Broken users can be of any of the other types (not found, basic...) self.assertEquals(classify.broken_users, {'10'}) self.assertEquals( classify.user_cloud_projects, { 'cpi_1', 'cpi_2', 'cpi_3', 'cpi_4', 'cpi_5', 'cpi_6', 'cpi_7', 'cpi_8', 'cpi_9', 'cpi_10' }) self.assertEquals( classify.user_default_projects, { 'dpi_1', 'dpi_2', 'dpi_3', 'dpi_4', 'dpi_5', 'dpi_6', 'dpi_7', 'dpi_8', 'dpi_9', 'dpi_10' }) self.assertEquals(classify.comtrialadmin_cloud_projects, {'cpi_3', 'cpi_4', 'cpi_5', 'cpi_6', 'dpi_7'}) self.assertEquals(classify.basic_cloud_projects, {'cpi_1', 'cpi_2'}) self.assertEquals(classify.community_cloud_projects, {'cpi_3', 'cpi_4'}) self.assertEquals(classify.trial_cloud_projects, {'cpi_5', 'cpi_6'}) self.assertEquals(classify.admin_cloud_projects, {'dpi_7'}) self.assertEquals(classify.other_users_cloud_projects, {'cpi_8'}) self.assertEquals(classify.not_found_cloud_projects, {'cpi_9', 'cpi_10'}) self.assertEquals(classify.broken_users_projects, {'cpi_10'}) self.assertTrue(True)