Source code for chap_core.testing.mocks

from typing import List, Optional

import numpy as np

from chap_core.datatypes import create_tsdataclass
from chap_core.exceptions import GEEError
from chap_core.rest_api.data_models import FetchRequest
from chap_core.spatio_temporal_data.temporal_dataclass import DataSet


[docs] class GEEMock: def __init__(self, worker_config, *args, **kwargs): if "gee" in worker_config.failing_services: raise GEEError("Intentional fail of gee service") self._worker_config = worker_config
[docs] def get_historical_era5(self, features, periodes, fetch_requests: Optional[List[FetchRequest]] = None): if fetch_requests is None: feature_names = ["rainfall", "mean_temperature"] else: feature_names = [f.feature_name for f in fetch_requests] dataclass = create_tsdataclass(feature_names) locations = [f["id"] for f in features["features"]] return DataSet( { location: dataclass(periodes, *[np.random.rand(len(periodes)) for _ in feature_names]) for location in locations } )