From 5358412b7a3b0e406272567ac7c655f542952f45 Mon Sep 17 00:00:00 2001 From: Alexander Zaft Date: Mon, 11 Dec 2023 10:59:35 +0100 Subject: [PATCH] core: better error on export of internal type more descriptive error when trying to export OrType, NoneOr, ValueType and DataTypeType Change-Id: If13815e9d2b177042b24a1bb62b1ad1d1d88b502 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/32737 Tested-by: Jenkins Automated Tests Reviewed-by: Alexander Zaft --- frappy/datatypes.py | 7 ++++++- test/test_datatypes.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frappy/datatypes.py b/frappy/datatypes.py index 37658db..47a5654 100644 --- a/frappy/datatypes.py +++ b/frappy/datatypes.py @@ -90,7 +90,11 @@ class DataType(HasProperties): def export_datatype(self): """return a python object which after jsonifying identifies this datatype""" - raise NotImplementedError + raise ProgrammingError( + f"{type(self).__name__} is not able to be exported to SECoP. " + f"It is intended for internal use only." + ) + def export_value(self, value): """if needed, reformat value for transport""" @@ -1232,6 +1236,7 @@ class OrType(DataType): self.types = types self.default = self.types[0].default + def __call__(self, value): """accepts any of the given types, takes the first valid""" for t in self.types: diff --git a/test/test_datatypes.py b/test/test_datatypes.py index 5c4c88b..7bf0a04 100644 --- a/test/test_datatypes.py +++ b/test/test_datatypes.py @@ -41,7 +41,7 @@ def copytest(dt): def test_DataType(): dt = DataType() - with pytest.raises(NotImplementedError): + with pytest.raises(ProgrammingError): dt.export_datatype() with pytest.raises(NotImplementedError): dt('')