From a0c0cc11c7d4634a7806b46ba49b72f8e895cc05 Mon Sep 17 00:00:00 2001 From: Maarten van Gompel Date: Fri, 8 Nov 2019 16:48:38 +0100 Subject: [PATCH] if a parameter is not set, do not return value False but raise an exception, except for BooleanParameters which default to False --- clam/common/data.py | 14 ++++++++++++-- clam/tests/authtest.py | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/clam/common/data.py b/clam/common/data.py index 7b5ac748..75299425 100644 --- a/clam/common/data.py +++ b/clam/common/data.py @@ -687,13 +687,23 @@ def parameter(self, parameter_id): def __getitem__(self, parameter_id): """Return the value of the specified global parameter""" try: - return self.parameter(parameter_id).value + param = self.parameter(parameter_id) + if param.hasvalue: + return param.value + else: + if isinstance(param, clam.common.parameters.BooleanParameter): + return False #booleans that have no explicit value simply default to false + raise KeyError("No such parameter passed: " + parameter_id) except KeyError: raise def get(self, parameter_id, default=None): try: - return self[parameter_id] + param = self.parameter(parameter_id) + if param.hasvalue: + return param.value + else: + return default except KeyError: return default diff --git a/clam/tests/authtest.py b/clam/tests/authtest.py index cee53c6d..1875500c 100644 --- a/clam/tests/authtest.py +++ b/clam/tests/authtest.py @@ -263,7 +263,7 @@ def test1_simplerun(self): while data.status != clam.common.status.DONE: time.sleep(1) #wait 1 second before polling status data = self.client.get(self.project) #get status again - self.assertFalse(data.errors) + self.assertFalse(data.errors, "Checking for absence of errors (" + data.errormsg + ")") self.assertTrue(isinstance(data.output, list)) self.assertTrue('servicetest.txt.freqlist' in [ x.filename for x in data.output ]) self.assertTrue('servicetest.txt.stats' in [ x.filename for x in data.output ])