예제 #1
0
def check_mm(openslex_file_path, connection_params, metadata):

    mm_engine = ex.create_mm_engine(openslex_file_path)
    mm_conn = mm_engine.connect()

    db_engine = ex.create_db_engine(**connection_params)
    db_conn = db_engine.connect()

    check = True

    for t in metadata.tables.keys():
        mm_q = sq.select([text('count(O.id) as num')]).select_from(text('object as O, class as CL')) \
            .where(text('O.class_id == CL.id and CL.name == "{}"'.format(t)))
        mm_res = mm_conn.execute(mm_q)
        mm_num = mm_res.first()
        mm_res.close()

        db_q = sq.select([text('count(*) as num')]).select_from(text(t))
        db_res = db_conn.execute(db_q)
        db_num = db_res.first()
        db_res.close()

        check_t = mm_num['num'] == db_num['num']
        check = check and check_t

        assert check

    mm_conn.close()
    mm_engine.dispose()

    db_conn.close()
    db_engine.dispose()
    print(check)

    return check
예제 #2
0
def test_mssql():

    classes = None
    try:
        db_engine = ex.create_db_engine(**connection_params)
        metadata = ex.get_metadata(db_engine, schemas)
        ex.extract_to_mm(openslex_file_path, connection_params, dir, db_engine=db_engine,
                         classes=classes, overwrite=True, metadata=metadata)
        assert check_mm(openslex_file_path, connection_params, metadata=metadata)
    except Exception as e:
        raise e
예제 #3
0
def test_custom_metadata_extraction():
    db_engine = ex.create_db_engine(**connection_params)
    metadata = ex.get_metadata(db_engine, schemas)
    discovered_pks = es.discover_pks(db_engine, metadata)
    discovered_fks = es.discover_fks(db_engine, metadata,
                                     pk_candidates=discovered_pks)
    db_meta = es.create_custom_metadata(db_engine, schemas,
                                        discovered_pks, discovered_fks)

    db_engine.dispose()
    ex.extract_to_mm(openslex_file_path, connection_params, dir, overwrite=True, metadata=db_meta)
    assert check_mm(openslex_file_path, connection_params, metadata)