diff --git a/consumer/api/cpp/src/data_broker.cpp b/consumer/api/cpp/src/data_broker.cpp index 7ab6f2c04d49b218a940654c2ab811970fa79b67..755713044fa969f020e16f7f1bfa1f96bc1c75c9 100644 --- a/consumer/api/cpp/src/data_broker.cpp +++ b/consumer/api/cpp/src/data_broker.cpp @@ -1,7 +1,7 @@ #include <common/networking.h> #include "consumer/data_broker.h" #include "server_data_broker.h" - +#include "consumer//consumer_error.h" namespace asapo { @@ -10,7 +10,7 @@ std::unique_ptr<DataBroker> Create(const std::string& source_name, Error* error, Args&& ... args) noexcept { if (source_name.empty()) { - error->reset(new SimpleError("Empty Data Source")); + *error = ConsumerErrorTemplates::kWrongInput.Generate("Empty Data Source"); return nullptr; } diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in index 67de7608c905b0403afb64eab15311a1d69cdf87..bb37ba89c003e343ee11be56dc9bff083a4ce3a4 100644 --- a/consumer/api/python/asapo_consumer.pyx.in +++ b/consumer/api/python/asapo_consumer.pyx.in @@ -335,11 +335,11 @@ cdef class __PyDataBrokerFactory: cdef unique_ptr[DataBroker] c_broker with nogil: c_broker = self.c_factory.CreateServerBroker(b_server_name,b_source_path,b_has_filesystem,source,&err) + if err: + throw_exception(err) broker = PyDataBroker() broker.c_broker = c_broker.release() broker.c_broker.SetTimeout(timeout) - if err: - throw_exception(err) return broker def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,stream,token,timeout_ms): @@ -354,7 +354,7 @@ def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,stre :rtype: Tuple with broker object and error. """ factory = __PyDataBrokerFactory() - return factory.create_server_broker(_bytes(server_name),_bytes(source_path),has_filesystem, _bytes(beamtime_id),_bytes(stream),_bytes(token),timeout_ms) + return factory.create_server_broker(server_name,source_path,has_filesystem, beamtime_id,stream,token,timeout_ms) __version__ = "@PYTHON_ASAPO_VERSION@@ASAPO_VERSION_COMMIT@" diff --git a/tests/automatic/consumer/consumer_api_python/consumer_api.py b/tests/automatic/consumer/consumer_api_python/consumer_api.py index f830ac0313838eaf04935f33f9d212bc80c4f517..98f1d29f9fb39c1ebdb2600cf895c49c462225af 100644 --- a/tests/automatic/consumer/consumer_api_python/consumer_api.py +++ b/tests/automatic/consumer/consumer_api_python/consumer_api.py @@ -202,6 +202,15 @@ def check_single(broker, group_id): else: exit_on_noerr("AsapoBrokerServersNotFound") + try: + asapo_consumer.create_server_broker("", "", True, "", "", "", 1000) + except asapo_consumer.AsapoWrongInputError as err: + print(err) + pass + else: + exit_on_noerr("should be AsapoWrongInputError") + + def check_dataset(broker, group_id): res = broker.get_next_dataset(group_id)