'Get the parents but don\'t unset the revision in their locations.
Intended for internal use but not restricted.
Args:
location (UsageKey): assumes the location\'s revision is None; so, uses revision keyword solely
key_revision:
MongoRevisionKey.draft - return only the draft parent
MongoRevisionKey.published - return only the published parent
ModuleStoreEnum.RevisionOption.all - return both draft and published parents'

def _get_raw_parent_locations(self, location, key_revision):

    _verify_revision_is_published(location)
    query = self._course_key_to_son(location.course_key)
    query['definition.children'] = location.to_deprecated_string()
    parents = self.collection.find(query, {'_id': True}, sort=[SORT_REVISION_FAVOR_DRAFT])
    return [Location._from_deprecated_son(parent['_id'], location.course_key.run) for parent in parents if ((key_revision == ModuleStoreEnum.RevisionOption.all) or (parent['_id']['category'] in DIRECT_ONLY_CATEGORIES) or (parent['_id']['revision'] == key_revision))]
