Ejemplo n.º 1
0
def test_get_observation(db_info):
    populated_db, _ = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        obs = rdb_api.get_observation(name="observation_one")
        assert obs is not None
        assert obs.name == "observation_one"
Ejemplo n.º 2
0
def test_get_realizations_by_ensemble_id(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        reals = rdb_api.get_realizations_by_ensemble_id(
            ensemble_id=db_lookup["ensemble"])
        assert len(list(reals)) == 2
Ejemplo n.º 3
0
def test_get_observation_attribute(db_info):
    populated_db, _ = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        obs_attrib = rdb_api.get_observation_attribute(name="observation_one",
                                                       attribute="region")
        assert obs_attrib == "1"
Ejemplo n.º 4
0
def test_get_all_ensembles(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        ens_list = rdb_api.get_all_ensembles()
        assert len(list(ens_list)) == 1
        assert ens_list[0].name == "ensemble_name"
Ejemplo n.º 5
0
def test_get_parameter_definitions_by_ensemble_id(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        param_def = rdb_api.get_parameter_definitions_by_ensemble_id(
            ensemble_id=db_lookup["ensemble"])
        assert len(list(param_def)) == 3
Ejemplo n.º 6
0
def test_get_response_bundle(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        bundle = rdb_api.get_response_bundle(response_name="response_one",
                                             ensemble_id=db_lookup["ensemble"])
        assert bundle.name == "response_one"
        assert len(bundle.responses) == 2
Ejemplo n.º 7
0
def test_get_all_observation_keys(db_info):
    populated_db, _ = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        obs_keys = rdb_api.get_all_observation_keys()
        assert set([
            "observation_one", "observation_two_first",
            "observation_two_second"
        ]) == set(obs_keys)
Ejemplo n.º 8
0
def test_get_response_by_realization_id(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        response = rdb_api.get_response_by_realization_id(
            response_definition_id=db_lookup["response_defition_one"],
            realization_id=db_lookup["realization_0"],
        )
        assert response is not None
Ejemplo n.º 9
0
def test_get_parameter_by_realization_id(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        param = rdb_api.get_parameter_by_realization_id(
            parameter_definition_id=db_lookup["parameter_def_A_G"],
            realization_id=db_lookup["realization_0"],
        )
        assert param.realization_id == db_lookup["realization_0"]
        assert param.parameter_definition_id == db_lookup["parameter_def_A_G"]
Ejemplo n.º 10
0
def test_get_parameter(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        param = rdb_api.get_parameter(name="A",
                                      group="G",
                                      realization_index=0,
                                      ensemble_name="ensemble_name")
        assert param.parameter_definition.name == "A"
        assert param.parameter_definition.group == "G"
        assert param.realization.index == 0
Ejemplo n.º 11
0
def test_get_parameter_bundle(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        bundle = rdb_api.get_parameter_bundle(
            parameter_def_id=db_lookup["parameter_def_A_G"],
            ensemble_id=db_lookup["ensemble"],
        )
        assert bundle is not None
        assert bundle.name == "A"
        assert bundle.group == "G"
        assert len(bundle.parameters) == 2
Ejemplo n.º 12
0
def dump_to_new_storage(reference=None,
                        rdb_connection=None,
                        blob_connection=None):

    start_time = time.time()
    logger.debug("Starting extraction...")
    if rdb_connection is None:
        rdb_url = "sqlite:///entities.db"
        rdb_connection = connections.get_rdb_connection(rdb_url)

    rdb_api = RdbApi(connection=rdb_connection)

    if blob_connection is None:
        blob_url = "sqlite:///blobs.db"
        blob_connection = connections.get_blob_connection(blob_url)

    blob_api = BlobApi(connection=blob_connection)

    with rdb_api, blob_api:
        priors = _extract_and_dump_priors(
            rdb_api=rdb_api) if reference is None else []

        ensemble = _create_ensemble(rdb_api,
                                    reference=reference,
                                    priors=priors)
        _extract_and_dump_observations(rdb_api=rdb_api, blob_api=blob_api)

        _extract_and_dump_parameters(
            rdb_api=rdb_api,
            blob_api=blob_api,
            ensemble_name=ensemble.name,
            priors=priors,
        )
        _extract_and_dump_responses(rdb_api=rdb_api,
                                    blob_api=blob_api,
                                    ensemble_name=ensemble.name)
        _extract_and_dump_update_data(ensemble.id, ensemble.name, rdb_api,
                                      blob_api)
        blob_api.commit()
        rdb_api.commit()
        ensemble_name = ensemble.name

        end_time = time.time()
        logger.debug(
            "Extraction done... (Took {:.2f} seconds)".format(end_time -
                                                              start_time))
        logger.debug("All ensembles in database: {}".format(", ".join(
            [ensemble.name for ensemble in rdb_api.get_all_ensembles()])))

    rdb_connection.close()
    blob_connection.close()

    return ensemble_name
Ejemplo n.º 13
0
    def __init__(self, rdb_url, blob_url):
        self._rdb_connection = connections.get_rdb_connection(rdb_url)
        self._rdb_api = RdbApi(connection=self._rdb_connection)

        self._blob_connection = connections.get_blob_connection(blob_url)
        self._blob_api = BlobApi(connection=self._blob_connection)
Ejemplo n.º 14
0
def test_get_ensemble_by_id(db_info):
    populated_db, db_lookup = db_info
    rdb_connection = connections.get_rdb_connection(populated_db)
    with RdbApi(connection=rdb_connection) as rdb_api:
        ens = rdb_api.get_ensemble_by_id(ensemble_id=db_lookup["ensemble"])
        assert ens.name == "ensemble_name"