def test_forward__if_index_already_dropped__should_ignore_this( self, test_db, left_schema): fields = [('field1', pymongo.ASCENDING), ('field2', pymongo.DESCENDING)] action = DropIndex('Document1', 'index2') action.prepare(test_db, left_schema, MigrationPolicy.strict) action.run_forward() indexes = [ x for x in test_db['document1'].list_indexes() if x['key'] == SON(fields) ] assert len(indexes) == 0
def test_forward__if_index_name_is_not_in_params__should_drop_index( self, test_db, left_schema): fields = [('field1', pymongo.ASCENDING)] test_db['document1'].create_index(fields) action = DropIndex('Document1', 'index1') action.prepare(test_db, left_schema, MigrationPolicy.strict) action.run_forward() indexes = [ x for x in test_db['document1'].list_indexes() if x['key'] == SON(fields) ] assert len(indexes) == 0
def test_forward_backward__if_index_name_is_in_params__should_create_index( self, test_db, left_schema): fields = [('field1', pymongo.ASCENDING), ('field2', pymongo.DESCENDING)] test_db['document1'].create_index(fields, name='index2', sparse=True) action = DropIndex('Document1', 'index2') action.prepare(test_db, left_schema, MigrationPolicy.strict) action.run_forward() action.cleanup() action.prepare(test_db, left_schema, MigrationPolicy.strict) action.run_backward() indexes = [ x for x in test_db['document1'].list_indexes() if x['key'] == SON(fields) ] assert len(indexes) == 1 assert indexes[0]['name'] == 'index2' assert indexes[0]['sparse'] is True