示例#1
0
    def test_sysrule_required(self):
        param = Parameter("myparam")

        # 赋了值的情况下,能够正常通过检查
        self.assertEqual(param.verify(dict(myparam="xyz")), "xyz")

        # required 默认应为 True,所以这里应该验证失败
        self.assertRaises(VerifyFailed, param.verify, {})

        # 手动设置 required 为 True 的结果应该和使用默认值时一样
        param2 = Parameter("myparam2", required=True)
        self.assertRaises(VerifyFailed, param2.verify, {})

        # 若 reuired 为 False,则不会抛出异常。且因为没有指定默认值,所以最终会返回 NoValue
        param3 = Parameter("myparam3", required=False)
        self.assertEqual(param3.verify({}), NoValue)

        # 在 required 为 False 的情况下,如果给出了参数值,仍能正确返回参数值
        param4 = Parameter("myparam4", required=False)
        self.assertEqual(param4.verify(dict(myparam4="123")), "123")

        # 只要参数有值,即使值为 None,也应该能通过 required 的检查
        # (但这样子通不过 nullable 的检查,所以要把它关闭)
        param5 = Parameter("myparam5", nullable=True)
        self.assertEqual(param5.verify(dict(myparam5=None)), None)
示例#2
0
    def test_verify(self):
        param = Parameter()
        self.assertEqual(param.verify(10), 10)
        self.assertRaises(VerifyFailed, param.verify, None)

        param2 = Parameter(nullable=True)
        self.assertEqual(param2.verify(None), None)
示例#3
0
    def test_sysrule_nullable(self):
        # nullable 默认应为 False
        param = Parameter("myparam")
        self.assertRaises(VerifyFailed, param.verify, dict(myparam=None))

        # nullable=True 时,各种值都应该能够通过检查
        param2 = Parameter("param2", nullable=True)
        self.assertEqual(param2.verify(dict(param2=None)), None)
        self.assertEqual(param2.verify(dict(param2=1)), 1)
示例#4
0
 def test_verify_method_and_sysrule_default(self):
     param = Parameter("param1", default=10)
     # 1. default 的执行顺序应该在 required 前面,所以 required 不会在填充默认值之前就进行检查,导致误报。
     # 2. default 对参数值的更新能够传递到 required 那里,这样它才会认为参数是有值的
     # 3. 通过所有验证后,经过调整的参数值会被返回给调用者
     self.assertEqual(param.verify({}), 10)