예제 #1
0
def test_user_defined_process_metadata():
    udp = UserDefinedProcessMetadata(id="enhance", process_graph={"foo": {"process_id": "foo"}})
    assert udp.prepare_for_json() == {
        "id": "enhance",
        "process_graph": {"foo": {"process_id": "foo"}},
        "parameters": None,
        "returns": None,
        "summary": None,
        "description": None,
        "links": None,
        "public": False
    }
예제 #2
0
 def test_get(self, udp_db, zk):
     data = ('{"specification": {"id": "evi", "process_graph": %s}}' %
             PG_2PLUS3_JSON).encode("utf-8")
     zk.get.return_value = (data, self.ZnodeStat(version=123))
     res = udp_db.get(user_id="john", process_id="evi")
     assert res == UserDefinedProcessMetadata(process_graph=PG_2PLUS3,
                                              id="evi")
예제 #3
0
 def get(self, user_id: str,
         process_id: str) -> Union[UserDefinedProcessMetadata, None]:
     with self._zk_client() as zk:
         udp_path = "{r}/{u}/{p}".format(r=self._root,
                                         u=user_id,
                                         p=process_id)
         try:
             data, _ = zk.get(udp_path)
             return UserDefinedProcessMetadata.from_dict(
                 self._deserialize(data)['specification'])
         except NoNodeError:
             return None
예제 #4
0
    def test_delete(self, udp_db, zk):
        udp_db.save(user_id="john",
                    process_id="evi",
                    spec={
                        "id": "evi",
                        "process_graph": PG_2PLUS3
                    })
        data = zk.create.call_args[0][1]
        zk.get.return_value = (data, self.ZnodeStat(version=123))
        res = udp_db.get(user_id="john", process_id="evi")
        assert res == UserDefinedProcessMetadata(process_graph=PG_2PLUS3,
                                                 id="evi")

        udp_db.delete(user_id="john", process_id="evi")
        zk.delete.assert_called_with("/openeo/udps/john/evi")
예제 #5
0
def test_user_defined_process_metadata_from_dict_extra():
    udp = UserDefinedProcessMetadata.from_dict({
        "id": "enhance",
        "process_graph": {"foo": {"process_id": "foo"}},
        "parameters": [],
        "returns": {"schema": {"type": "number"}},
        "summary": "Enhance it!",
        "description": "Enhance the image with the foo process."
    })
    assert udp.id == "enhance"
    assert udp.process_graph == {"foo": {"process_id": "foo"}}
    assert udp.parameters == []
    assert udp.returns == {"schema": {"type": "number"}}
    assert udp.summary == "Enhance it!"
    assert udp.description == "Enhance the image with the foo process."
예제 #6
0
 def save(self, user_id: str, process_id: str, spec: dict) -> None:
     self._processes[
         user_id, process_id] = UserDefinedProcessMetadata.from_dict(spec)
예제 #7
0
def test_user_defined_process_metadata_from_dict_no_pg():
    with pytest.raises(KeyError):
        _ = UserDefinedProcessMetadata.from_dict({"id": "enhance"})
예제 #8
0
def test_user_defined_process_metadata_from_dict_no_id():
    with pytest.raises(KeyError):
        _ = UserDefinedProcessMetadata.from_dict({"process_graph": {"foo": {"process_id": "foo"}}})
예제 #9
0
def test_user_defined_process_metadata_from_dict_minimal():
    udp = UserDefinedProcessMetadata.from_dict({"id": "enhance", "process_graph": {"foo": {"process_id": "foo"}}})
    assert udp.id == "enhance"
    assert udp.process_graph == {"foo": {"process_id": "foo"}}
    assert udp.parameters is None
예제 #10
0
 def save(self, user_id: str, process_id: str, spec: dict) -> None:
     user_udps = self._store.get(user_id, {})
     new_udp = UserDefinedProcessMetadata.from_dict(spec)
     user_udps[new_udp.id] = new_udp
     self._store[user_id] = user_udps