def METHOD_NAME(self):
    """Test dump annotations locally."""
    savepath = tempfile.mkdtemp()
    # recursively save annotations -- parse to csv + sqlite
    dump_annotations_locally(
        cfg.gc, folderid=cfg.folderid, local=savepath,
        save_json=False, save_sqlite=True,
        callback=parse_annotations_to_local_tables,
        callback_kwargs={
            'save_csv': True,
            'save_sqlite': True,
        }
    )
    assert not len({
        'test-parser.sqlite',
        'test_dbsqlite-0_docs.csv',
        'test_dbsqlite-0_elements.csv',
        'test_dbsqlite-1_docs.csv',
        'test_dbsqlite-1_elements.csv',
        'test-parser-sub'} - set(os.listdir(savepath)))
    files = [j for j in os.listdir(os.path.join(savepath, 'test-parser-sub'))]
    assert len([j for j in files if j.endswith('_docs.csv')]) == 2
    assert len([j for j in files if j.endswith('_elements.csv')]) == 2
    sql_engine = db.create_engine('sqlite:///%s/test-parser.sqlite' % savepath)
    dbcon = sql_engine.connect()
    result = pd.read_sql_query(text(
        """SELECT * FROM 'annotation_docs';"""), dbcon)
    assert result.shape == (32, 13)
    assert set(result.columns) == {
        '_modelType', '_version', 'annotation_girder_id',
        'created', 'creatorId', 'element_count',
        'element_details', 'groups', 'itemId', 'item_name',
        'public', 'updated', 'updatedId'}
    result = pd.read_sql_query(text(
        """SELECT * FROM 'annotation_elements';"""), dbcon)
    assert result.shape == (304, 13)
    assert set(result.columns) == {
        'annotation_girder_id', 'bbox_area', 'color',
        'coords_x', 'coords_y', 'element_girder_id', 'group', 'label',
        'type', 'xmax', 'xmin', 'ymax', 'ymin'}
    # cleanup
    shutil.rmtree(savepath)