Ejemplo n.º 1
0
def datasets_query_v1_0():
    """
    API Format: /api/v1.0/datasets/

    Optional arguments:
    * id : Show only the name and id of the datasets

    Returns:
        Response -- Response object containing list of available datasets w/ some metadata.
    """

    data = []
    if 'id' in request.args:
        for key in DatasetConfig.get_datasets():
            config = DatasetConfig(key)
            data.append({'id': key, 'value': config.name})
    else:
        for key in DatasetConfig.get_datasets():
            config = DatasetConfig(key)
            data.append({
                'id': key,
                'value': config.name,
                'quantum': config.quantum,
                'help': config.help,
                'attribution': config.attribution,
            })
    data = sorted(data, key=lambda k: k['value'])
    resp = jsonify(data)
    return resp
Ejemplo n.º 2
0
def datasets_query_v1_0():
    """
    API Format: /api/v1.0/datasets/

    Optional arguments:
    * id: Show only the name and id of the datasets

    Returns:
        List of available datasets w/ some metadata.
    """

    data = []
    if "id" in request.args:
        for key in DatasetConfig.get_datasets():
            config = DatasetConfig(key)
            data.append({"id": key, "value": config.name})
    else:
        for key in DatasetConfig.get_datasets():
            config = DatasetConfig(key)
            data.append(
                {
                    "id": key,
                    "value": config.name,
                    "quantum": config.quantum,
                    "help": config.help,
                    "attribution": config.attribution,
                }
            )
    data = sorted(data, key=lambda k: k["value"])
    resp = jsonify(data)
    return resp
    def test_datasetconfig_object(self, m):
        m.return_value = {
            "key": {
                "enabled": True,
                "url": "my_url",
                "climatology": "my_climatology",
                "name": "my_name",
                "help": "my_help",
                "quantum": "my_quantum",
                "attribution": "my_<b>attribution</b>",
                "cache": "123",
                "variables": {
                    "var": {
                        "name": "my_variable",
                    }
                }
            },
        }

        self.assertEqual(len(DatasetConfig.get_datasets()), 1)

        result = DatasetConfig("key")
        self.assertEqual(result.url, "my_url")
        self.assertEqual(result.climatology, "my_climatology")
        self.assertEqual(result.name, "my_name")
        self.assertEqual(result.help, "my_help")
        self.assertEqual(result.quantum, "my_quantum")
        self.assertEqual(result.attribution, "my_attribution")
        self.assertEqual(result.cache, 123)

        self.assertFalse(result.variable[Mock(key="var")].is_hidden)
    def thorough(self):

        self.app = create_app()
        with self.app.app_context():

            datasets = DatasetConfig.get_datasets()
            variables = {}
            for dataset in datasets:
                variables.update({dataset: DatasetConfig(dataset).variables})
            data = {'datasets': datasets, 'variables': variables}
            return data
    def test_datasetconfig_object(self, m):
        m.return_value = {
            "key": {
                "enabled": True,
                "url": "my_url",
                "geo_ref": {
                    "url": "my_geo_ref_url",
                    "drop_variables": ["bathymetry"],
                },
                "climatology": "my_climatology",
                "name": "my_name",
                "help": "my_help",
                "quantum": "my_quantum",
                "type": "my_type",
                "grid_angle_file_url": "my_grid_angle_file_url",
                "bathymetry_file_url": "my_bathy_file_url.nc",
                "model_class": "my_model_class",
                "time_dim_units": "my_time_units",
                "attribution": "my_<b>attribution</b>",
                "cache": "123",
                "lat_var_key": "my_lat",
                "lon_var_key": "my_lon",
                "variables": {
                    "var": {
                        "name": "my_variable",
                    }
                },
            }
        }

        self.assertEqual(len(DatasetConfig.get_datasets()), 1)

        result = DatasetConfig("key")
        self.assertEqual(result.url, "my_url")
        self.assertEqual(result.geo_ref["url"], "my_geo_ref_url")
        self.assertEqual(result.geo_ref["drop_variables"], ["bathymetry"])
        self.assertEqual(result.key, "key")
        self.assertEqual(result.climatology, "my_climatology")
        self.assertEqual(result.name, "my_name")
        self.assertEqual(result.help, "my_help")
        self.assertEqual(result.quantum, "my_quantum")
        self.assertEqual(result.grid_angle_file_url, "my_grid_angle_file_url")
        self.assertEqual(result.bathymetry_file_url, "my_bathy_file_url.nc")
        self.assertEqual(result.model_class, "my_model_class")
        self.assertEqual(result.type, "my_type")
        self.assertEqual(result.time_dim_units, "my_time_units")
        self.assertEqual(result.lat_var_key, "my_lat")
        self.assertEqual(result.lon_var_key, "my_lon")
        self.assertEqual(result.attribution, "my_attribution")
        self.assertEqual(result.cache, 123)

        self.assertFalse(result.variable[Mock(key="var")].is_hidden)
    def test_get_datasets(self, m):
        m.return_value = {
            "k": {
                "enabled": True,
            },
            "key": {
                "enabled": True,
            },
            "disabled": {
                "notenabled": True,
            },
        }

        result = DatasetConfig.get_datasets()
        self.assertEqual(len(result), 2)
        self.assertIn("k", result)
        self.assertIn("key", result)
        self.assertNotIn("disabled", result)