예제 #1
0
    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."
        )
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
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)