def test_drop_indexes(self): """ Tests updating indexes on an existing collection with different indexes correctly changes them. """ # Setup old_key = ['compound_1', 'compound_2'] type_def = TypeDefinition('rpm', 'RPM', 'RPM Packages', old_key, None, []) types_db._update_unit_key(type_def) # Test new_key = ['new_1'] type_def.unit_key = new_key types_db._drop_indexes(type_def) types_db._update_unit_key(type_def) # Verify collection_name = types_db.unit_collection_name(type_def.id) collection = pulp_db.get_collection(collection_name) index_dict = collection.index_information() self.assertEqual(2, len(index_dict)) # default (_id) + new one
def test_update_unit_key_multiple_fields(self): """ Tests that a multiple field unit key is built as a single, compound index """ # Setup unit_key = ['compound_1', 'compound_2'] type_def = TypeDefinition('rpm', 'RPM', 'RPM Packages', unit_key, None, []) # Test types_db._update_unit_key(type_def) # Verify collection_name = types_db.unit_collection_name(type_def.id) collection = pulp_db.get_collection(collection_name) index_dict = collection.index_information() self.assertEqual(2, len(index_dict)) # default (_id) + unit key index = index_dict['compound_1_1_compound_2_1'] self.assertTrue(index['unique']) keys = index['key'] self.assertEqual(2, len(keys)) self.assertEqual('compound_1', keys[0][0]) self.assertEqual(types_db.ASCENDING, keys[0][1]) self.assertEqual('compound_2', keys[1][0]) self.assertEqual(types_db.ASCENDING, keys[1][1])
def test_update_unit_key_single_field(self): """ Tests a single field unit key is handled correctly. """ # Setup unit_key = 'individual_1', type_def = TypeDefinition('rpm', 'RPM', 'RPM Packages', unit_key, None, []) # Test types_db._update_unit_key(type_def) # Verify collection_name = types_db.unit_collection_name(type_def.id) collection = pulp_db.get_collection(collection_name) index_dict = collection.index_information() self.assertEqual(2, len(index_dict)) # default (_id) + unit key index = index_dict['individual_1_1'] self.assertTrue(index['unique']) keys = index['key'] self.assertEqual(1, len(keys)) self.assertEqual('individual_1', keys[0][0]) self.assertEqual(types_db.ASCENDING, keys[0][1])