'Because old mongo treated verticals as the first layer which could be draft, it has some interesting
behavioral properties which this deletion test gets at.'

@ddt.data((ModuleStoreEnum.Type.mongo, 9, 2), (ModuleStoreEnum.Type.split, 4, 3))
@ddt.unpack
def test_delete_private_vertical(self, default_ms, max_find, max_send):

    self.initdb(default_ms)
    if ((default_ms == ModuleStoreEnum.Type.mongo) and mongo_uses_error_check(self.store)):
        max_find += 1
    private_vert = self.store.create_child(self.user_id, self.course_locations[self.MONGO_COURSEID], 'vertical', block_id='private')
    private_leaf = self.store.create_child(self.user_id, private_vert.location, 'html', block_id='private_leaf')
    if hasattr(private_vert.location, 'version_guid'):
        vert_loc = private_vert.location.for_version(private_leaf.location.version_guid)
    else:
        vert_loc = private_vert.location
    self.assertTrue(self.store.has_item(vert_loc))
    self.assertTrue(self.store.has_item(private_leaf.location))
    course = self.store.get_course(self.course_locations[self.MONGO_COURSEID].course_key, 0)
    self.assertIn(vert_loc, course.children)
    with check_mongo_calls(max_find, max_send):
        self.store.delete_item(vert_loc, self.user_id)
    course = self.store.get_course(self.course_locations[self.MONGO_COURSEID].course_key, 0)
    if hasattr(private_vert.location, 'version_guid'):
        vert_loc = private_vert.location.for_version(course.location.version_guid)
        leaf_loc = private_leaf.location.for_version(course.location.version_guid)
    else:
        vert_loc = private_vert.location
        leaf_loc = private_leaf.location
    self.assertFalse(self.store.has_item(vert_loc))
    self.assertFalse(self.store.has_item(leaf_loc))
    self.assertNotIn(vert_loc, course.children)
