def _server_helper(dssc: DoltSQLServerContext, request): dssc.start_server() def finalize(): if dssc.server: dssc.stop_server() dssc.verify_connection() request.addfinalizer(finalize)
def test_context_manager_cleanup(init_empty_test_repo): dolt = init_empty_test_repo with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as _: assert _count_proc_helper('running') + _count_proc_helper( 'sleeping') >= 1 assert _count_proc_helper('zombie') >= 1
def test_log_file(sql_server, tmp_path): log_file = tmp_path / "temp_log" conf = ServerConfig(user="******", host="localhost", port="3306", log_file=log_file) with DoltSQLServerContext(sql_server, conf) as conn: assert len(log_file.open().read()) > 0
def test_commit_tables(with_test_tables): dolt = with_test_tables with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as dssc: dssc.write_rows(TEST_TABLE_ONE, TEST_DATA_INITIAL, commit=False) dssc.write_rows(TEST_TABLE_TWO, TEST_DATA_INITIAL, commit=False) dssc.commit_tables(COMMIT_MESSAGE, [TEST_TABLE_ONE, TEST_TABLE_TWO], False) _, commit = dolt.log().popitem(last=False) assert commit.message == COMMIT_MESSAGE
def test_read_rows(with_test_table): dolt = with_test_table with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as dssc: first_commit = dssc.write_rows(TEST_TABLE, TEST_DATA_INITIAL, commit=True) second_commit = dssc.write_rows(TEST_TABLE, TEST_DATA_UPDATE, commit=True) expected_first_write = dssc.read_rows(TEST_TABLE, first_commit) compare_rows(TEST_DATA_INITIAL, expected_first_write, 'name') expected_second_write = dssc.read_rows(TEST_TABLE, second_commit) compare_rows(TEST_DATA_FINAL, expected_second_write, 'name')
def test_write_columns(with_test_table): dolt = with_test_table with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as dssc: first_commit = dssc.write_columns(TEST_TABLE, rows_to_columns(TEST_DATA_INITIAL), primary_key=['id'], commit=True) second_commit = dssc.write_columns(TEST_TABLE, rows_to_columns(TEST_DATA_UPDATE), commit=True) actual_asof_first_commit = dssc.read_rows(TEST_TABLE, first_commit) actual_asof_second_commit = dssc.read_rows(TEST_TABLE, second_commit) compare_rows(TEST_DATA_INITIAL, actual_asof_first_commit, 'name') compare_rows(actual_asof_second_commit, TEST_DATA_FINAL, 'name')
def test_write_file(with_test_table, with_test_data_initial_file, with_test_data_final_file): dolt = with_test_table test_data_initial_file, test_data_final_file = with_test_data_initial_file, with_test_data_final_file with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as dssc: first_commit = dssc.write_file(TEST_TABLE, test_data_initial_file, primary_key=['id'], commit=True) second_commit = dssc.write_file(TEST_TABLE, test_data_final_file, commit=True) actual_asof_first_commit = dssc.read_rows(TEST_TABLE, first_commit) actual_asof_second_commit = dssc.read_rows(TEST_TABLE, second_commit) compare_rows(TEST_DATA_INITIAL, actual_asof_first_commit, 'name') compare_rows(TEST_DATA_FINAL, actual_asof_second_commit, 'name')
from doltpy.cli import Dolt from doltpy.sql import DoltSQLServerContext, ServerConfig import sqlalchemy as sa import os cur_dir = os.path.dirname(os.path.realpath(__file__)) f = open(cur_dir + "/../../private/.mysql_password", "r") mysql_password = f.read().strip("\n") # Setup objects to represents source and target databases, start Dolt SQL Server dolt = Dolt.clone('durst/csknow') dssc = DoltSQLServerContext(dolt, ServerConfig()) dssc.start_server() mysql_engine = sa.create_engine( '{dialect}://{user}:{password}@{host}:{port}/{database}'.format( dialect='mysql+mysqlconnector', user="******", password=mysql_password, host="localhost", port="3124", database="csknow" ) ) from doltpy.sql.sync import sync_schema_to_dolt, MYSQL_TO_DOLT_TYPE_MAPPING sync_schema_to_dolt(mysql_engine, dssc.engine, {"players":"players", "rounds":"rounds", "ticks":"ticks", "player_at_tick":"player_at_tick", "spotted":"spotted", "weapon_fire":"weapon_fire", "kills":"kills", "hurt":"hurt", "grenades":"grenades", "flashed":"flashed", "grenade_trajectories":"grenade_trajectories", "plants":"plants", "defusals":"defusals", "explosions":"explosions"}, MYSQL_TO_DOLT_TYPE_MAPPINGS)
def empty_db_with_server_process(request, init_empty_test_repo, with_db_config) -> DoltSQLServerContext: dssc = DoltSQLServerContext(init_empty_test_repo, with_db_config) _server_helper(dssc, request) return dssc
def db_with_table_with_arrays(request, init_empty_test_repo, with_db_config) -> Tuple[DoltSQLServerContext, Table]: dssc = DoltSQLServerContext(init_empty_test_repo, with_db_config) return _test_table_helper(dssc, request, DOLT_TABLE_WITH_ARRAYS)
def db_with_table(request, init_empty_test_repo, with_db_config) -> Tuple[DoltSQLServerContext, Table]: dssc = DoltSQLServerContext(init_empty_test_repo, with_db_config) return _test_table_helper(dssc, request, TEST_TABLE_METADATA)
def empty_db_with_server_process(request, init_empty_test_repo) -> DoltSQLServerContext: dssc = DoltSQLServerContext(init_empty_test_repo, TEST_SERVER_CONFIG) _server_helper(dssc, request) return dssc
def db_with_table_with_arrays( request, init_empty_test_repo) -> Tuple[DoltSQLServerContext, Table]: dssc = DoltSQLServerContext(init_empty_test_repo, TEST_SERVER_CONFIG) return _test_table_helper(dssc, request, DOLT_TABLE_WITH_ARRAYS)
def test_show_tables(with_test_tables): dolt = with_test_tables with DoltSQLServerContext(dolt, TEST_SERVER_CONFIG) as dssc: tables = dssc.tables() assert TEST_TABLE_ONE in tables and TEST_TABLE_TWO in tables