def test_refresh_runs(engine):
    viewname = 'viewname' + str(random.randint(1, 10000000))
    run_command(['add-view', '--name', viewname, '1', 'Note'])
    run_command(['refresh-views', viewname, '--remove'])
    run_command(['refresh-views', viewname])

    with engine.connect() as conn:
        results = conn.execute(CURRENT_TABLES_QUERY.format(viewname))
        db_tables = {result['table_name'] for result in results}
        assert db_tables.issuperset(VIEWS_TABLES)

    with engine.connect() as conn:
        results = conn.execute(NO_COMMENTS_QUERY, 'view_data_' + viewname)
        missing_comments = [result for result in results]
        assert missing_comments == []

    run_command(['refresh-views', viewname, '--remove'])
    with engine.connect() as conn:
        results = conn.execute(CURRENT_TABLES_QUERY.format(viewname))
        db_tables = {result['table_name'] for result in results}
        assert db_tables.isdisjoint(VIEWS_TABLES)
def test_refresh_runs(engine):
    run_command(['refresh-views', '--remove'])
    run_command(['refresh-views'])
    get_current_tables_query = "select table_name from information_schema.tables where table_schema = 'views'"

    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert db_tables.issuperset(VIEWS_TABLES)

    run_command(['refresh-views', '--remove'])
    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert db_tables.isdisjoint(VIEWS_TABLES)
def test_refresh_runs_tables_only(engine):

    viewname = 'viewname' + str(random.randint(1, 10000000))
    run_command(['add-view', '--name', viewname, '1', 'Note', '--tables-only'])

    with engine.connect() as conn:
        results = conn.execute(CURRENT_TABLES_QUERY.format(viewname))
        db_tables = {result['table_name'] for result in results}
        assert db_tables.issuperset(VIEWS_TABLES)

    run_command(['refresh-views', viewname, '--tables-only'])
    with engine.connect() as conn:
        results = conn.execute(CURRENT_TABLES_QUERY.format(viewname))
        db_tables = {result['table_name'] for result in results}
        assert db_tables.issuperset(VIEWS_TABLES)

    run_command(['refresh-views', viewname, '--remove', '--tables-only'])
    with engine.connect() as conn:
        results = conn.execute(CURRENT_TABLES_QUERY.format(viewname))
        db_tables = {result['table_name'] for result in results}
        print(db_tables)
        assert db_tables.isdisjoint(VIEWS_TABLES)

    run_command(['delete-view', viewname])
def test_field_count_runs(engine):
    run_command(['refresh-views', '--remove'])
    run_command(['field-counts', '--remove'])
    run_command(['refresh-views'])
    run_command(['field-counts'])
    get_current_tables_query = "select table_name from information_schema.tables where table_schema = 'views'"

    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert 'field_counts' in db_tables

    run_command(['refresh-views', '--remove'])
    run_command(['field-counts', '--remove'])

    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert 'field_counts' not in db_tables
def test_field_count_runs(engine):
    viewname = 'viewname' + str(random.randint(1, 10000000))
    run_command(['add-view', '--name', viewname, '1', 'Note'])
    run_command(['refresh-views', viewname, '--remove'])
    run_command(['field-counts', viewname, '--remove'])
    run_command(['refresh-views', viewname])
    run_command(['field-counts', viewname])
    get_current_tables_query = "select table_name from information_schema.tables " + \
                               "where table_schema = 'view_data_" + viewname + "'"

    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert 'field_counts' in db_tables

    run_command(['refresh-views', viewname, '--remove'])
    run_command(['field-counts', viewname, '--remove'])

    with engine.connect() as conn:
        results = conn.execute(get_current_tables_query)
        db_tables = {result['table_name'] for result in results}
        assert 'field_counts' not in db_tables

    run_command(['delete-view', viewname])