def testSetRequired(self): opt = Parameter('year') self.assertEqual(opt.required, False) retcode, msg = opt.setRequired(True) self.assertEqual(retcode, 0) self.assertEqual(msg, None) self.assertEqual(opt.required, True) retcode, msg = opt.validate() self.assertEqual(retcode, 1) self.assertEqual(msg, "The parameter 'year' is marked as required, but no value is assigned.") opt.setValue(1980) retcode, msg = opt.validate() self.assertEqual(retcode, 0) self.assertEqual(msg, None) retcode, msg = opt.setRequired(False) self.assertEqual(retcode, 1) self.assertEqual( msg, "The parameter 'year' has already been validated, the required state cannot be changed." ) retcode, msg = opt.setRequired('wrong') self.assertEqual(retcode, 1) self.assertEqual( msg, "For the parameters 'year', the supplied value for `setRequired` must be a `bool`, a <class 'str'> was provided." )
def testRequired(self): opt = Parameter('year', required=True) self.assertEqual(opt.required, True) ret, err = opt.validate() self.assertEqual(ret, 1) self.assertIn("The parameter 'year' is marked as required, but no value is assigned.", err) with self.assertRaises(TypeError) as e: Parameter('year', required="wrong") self.assertIn( "The supplied 'required' argument must be a 'bool', but <class 'str'> was provided.", str(e.exception)) ret, err = opt.setValue(1980) self.assertEqual(ret, 0) self.assertEqual(err, None) ret, err = opt.validate() self.assertEqual(ret, 0) self.assertEqual(err, None) ret, err = opt.setValue(None) self.assertEqual(ret, 1) self.assertIn("'year' was defined as required", err) self.assertIn("a value of None may not be utilized.", err)
def testValidate(self): sub = InputParameters() sub.add('year') opt = Parameter('date', default=sub) self.assertFalse(opt.is_validated) self.assertFalse(sub.parameter('year').is_validated) opt.validate() self.assertTrue(opt.is_validated) self.assertTrue(sub.parameter('year').is_validated)
def testRequired(self): opt = Parameter('year', required=True) self.assertEqual(opt.required, True) with self.assertLogs(level=logging.WARNING) as cm: retcode = opt.validate() self.assertEqual(retcode, 1) self.assertEqual(len(cm.output), 1) self.assertIn( "The Parameter 'year' is marked as required, but no value is assigned.", cm.output[0]) with self.assertRaises(TypeError) as e: Parameter('year', required="wrong") self.assertIn( "The supplied 'required' argument must be a 'bool', but <class 'str'> was provided.", str(e.exception)) opt.value = 1980 self.assertEqual(opt.validate(), 0)
def testMutable(self): opt = Parameter('year', mutable=False) self.assertEqual(opt.mutable, False) with self.assertRaises(TypeError) as e: Parameter('year', mutable="wrong") self.assertIn( "The supplied 'mutable' argument must be a 'bool', but <class 'str'> was provided.", str(e.exception)) ret, err = opt.setValue(1980) self.assertEqual(ret, 0) self.assertEqual(err, None) ret, err = opt.validate() self.assertEqual(ret, 0) self.assertEqual(err, None) ret, err = opt.setValue(1980) self.assertEqual(ret, 1) self.assertIn("An attempt was made to change the value or default of 'year'", err)