diff --git a/GaudiKernel/python/GaudiKernel/PropertyProxy.py b/GaudiKernel/python/GaudiKernel/PropertyProxy.py index c8a5c613aee33adcdd03cddf222cde82437d4ca8..4211f0630225eb6c2abaf46f3391fc9a956e44ba 100644 --- a/GaudiKernel/python/GaudiKernel/PropertyProxy.py +++ b/GaudiKernel/python/GaudiKernel/PropertyProxy.py @@ -393,6 +393,9 @@ class DataObjectHandleBasePropertyProxy(PropertyProxy): return DataObjectHandleBase(value) elif isinstance(value, DataObjectHandleBase): return DataObjectHandleBase(value.__str__()) + else: + raise ValueError("received an instance of %s, but %s expected" % + (type(value), 'str or DataObjectHandleBase')) def PropertyProxyFactory(descr, doc, default): diff --git a/GaudiKernel/tests/nose/test_Configurables.py b/GaudiKernel/tests/nose/test_Configurables.py index 9ea4cd18bdf597347a6d03d2e1f2499887adaa50..a9a4c0341ac0e577824f7f18a8787be7e2b31d53 100644 --- a/GaudiKernel/tests/nose/test_Configurables.py +++ b/GaudiKernel/tests/nose/test_Configurables.py @@ -1,10 +1,12 @@ # Prepare dummy configurables from GaudiKernel.Configurable import ConfigurableAlgorithm, Configurable +from GaudiKernel.DataObjectHandleBase import DataObjectHandleBase class MyAlg(ConfigurableAlgorithm): __slots__ = {'Text': 'some text', - 'Int': 23} + 'Int': 23, + 'DataHandle': DataObjectHandleBase('Location')} def getDlls(self): return 'Dummy' @@ -26,7 +28,10 @@ def test_correct(): a = MyAlg() a.Int = 42 a.Text = 'value' - assert a.getValuedProperties() == {'Int': 42, 'Text': 'value'} + a.DataHandle = '/Event/X' + assert a.getValuedProperties() == { + 'Int': 42, 'Text': 'value', + 'DataHandle': DataObjectHandleBase('/Event/X')} def test_invalid_value(): @@ -53,6 +58,17 @@ def test_invalid_value(): assert False, 'ValueError exception expected, got %s' % type( x).__name__ + try: + a.DataHandle = [123] + assert False, 'exception expected' + except AssertionError: + raise + except ValueError: + pass + except Exception, x: + assert False, 'ValueError exception expected, got %s' % type( + x).__name__ + def test_invalid_key(): a = MyAlg()