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"
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
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"
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"
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
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
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)
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
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"]
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
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
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
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)
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"