def test_apply_dimension_temporal_run_udf_legacy_client(api):
    api.check_result(
        "apply_dimension_temporal_run_udf.json",
        preprocess=preprocess_check_and_replace('"dimension": "t"', '"dimension": "temporal"')
    )
    assert api.collections["S2_FAPAR_CLOUDCOVER"].apply_tiles_spatiotemporal.call_count == 1
    assert api.collections["S2_FAPAR_CLOUDCOVER"].apply_dimension.call_count == 1
def test_execute_apply_unary_invalid_from_parameter(api100):
    pg = api100.load_json(
        "apply_unary.json",
        preprocess=preprocess_check_and_replace('"from_parameter": "x"', '"from_parameter": "1nv8l16"')
    )
    resp = api100.post("/result", json=api100.get_process_graph_dict(pg))
    resp.assert_error(400, "ProcessParameterMissing")
def test_reduce_max_invalid_dimension(api):
    pg = api.load_json("reduce_max.json", preprocess=preprocess_check_and_replace("PLACEHOLDER", "orbit"))
    res = api.post("/result", json=api.get_process_graph_dict(pg))
    res.assert_error(
        400, 'ProcessArgumentInvalid',
        message="The argument 'dimension' in process '{p}' is invalid: got 'orbit', but should be one of ['x', 'y', 't', 'bands']".format(
            p="reduce_dimension" if api.api_version_compare.at_least("1.0.0") else "reduce"
        )
    )
def test_aggregate_temporal_max_invalid_temporal_dimension(api):
    pg = api.load_json(
        "aggregate_temporal_max.json",
        preprocess=preprocess_check_and_replace('"dimension": "t"', '"dimension": "detijd"')
    )
    resp = api.post(path="/result", json=api.get_process_graph_dict(pg))
    resp.assert_error(
        400, 'ProcessArgumentInvalid',
        message="The argument 'dimension' in process 'aggregate_temporal' is invalid: got 'detijd', but should be one of ['x', 'y', 't']"
    )
def test_reduce_bands_legacy_client(api):
    api.check_result(
        "reduce_bands.json",
        preprocess=preprocess_check_and_replace('"dimension": "bands"', '"dimension": "spectral_bands"')
    )
    reduce_bands = dummy_backend.collections["S2_FOOBAR"].reduce_bands
    reduce_bands.assert_called_once()
    visitor = reduce_bands.call_args_list[0][0][0]
    assert isinstance(visitor, dummy_backend.DummyVisitor)
    assert set(p[0] for p in visitor.processes) == {"sum", "subtract", "divide"}
def test_apply_dimension_temporal_run_udf_invalid_temporal_dimension(api):
    pg = api.load_json(
        "apply_dimension_temporal_run_udf.json",
        preprocess=preprocess_check_and_replace('"dimension": "t"', '"dimension": "letemps"')
    )
    resp = api.post("/result", json=api.get_process_graph_dict(pg))
    resp.assert_error(
        400, 'ProcessArgumentInvalid',
        message="The argument 'dimension' in process 'apply_dimension' is invalid: got 'letemps', but should be one of ['x', 'y', 't']"
    )
def test_reduce_bands_invalid_dimension(api):
    pg = api.load_json(
        "reduce_bands.json",
        preprocess=preprocess_check_and_replace('"dimension": "bands"', '"dimension": "layor"')
    )
    res = api.post("/result", json=api.get_process_graph_dict(pg))
    res.assert_error(
        400, "ProcessArgumentInvalid",
        message="The argument 'dimension' in process '{p}' is invalid: got 'layor', but should be one of ['x', 'y', 't', 'bands']".format(
            p="reduce_dimension" if api.api_version_compare.at_least("1.0.0") else "reduce"
        )
    )
Exemple #8
0
def test_preprocess_check_and_replace():
    preprocess = preprocess_check_and_replace("foo", "bar")
    assert preprocess("foobar") == "barbar"
    assert preprocess("foobarfoobar") == "barbarbarbar"
    with pytest.raises(AssertionError):
        preprocess("bazbar")
def test_fuzzy_mask_parent_scope(api100):
    api100.check_result(
        "fuzzy_mask.json",
        preprocess=preprocess_check_and_replace('"from_parameter": "x"', '"from_parameter": "data"')
    )
def test_aggregate_temporal_max_legacy_client(api):
    api.check_result(
        "aggregate_temporal_max.json",
        preprocess=preprocess_check_and_replace('"dimension": "t"', '"dimension": "temporal"')
    )
def test_reduce_max_bands(api):
    api.check_result("reduce_max.json", preprocess=preprocess_check_and_replace("PLACEHOLDER", "bands"))
    # Legacy client style
    api.check_result("reduce_max.json", preprocess=preprocess_check_and_replace("PLACEHOLDER", "spectral_bands"))
def test_reduce_max_xy(api):
    api.check_result("reduce_max.json", preprocess=preprocess_check_and_replace("PLACEHOLDER", "x"))
    api.check_result("reduce_max.json", preprocess=preprocess_check_and_replace("PLACEHOLDER", "y"))
def test_reduce_bands_run_udf_legacy_client(api):
    api.check_result(
        "reduce_bands_run_udf.json",
        preprocess=preprocess_check_and_replace('"dimension": "bands"', '"dimension": "spectral_bands"')
    )
    assert api.collections["S2_FOOBAR"].apply_tiles.call_count == 1
def test_execute_apply_unary_parent_scope(api100):
    api100.check_result(
        "apply_unary.json",
        preprocess=preprocess_check_and_replace('"from_parameter": "x"', '"from_parameter": "data"')
    )