diff options
Diffstat (limited to 'tests/test_ipalib/test_frontend.py')
-rw-r--r-- | tests/test_ipalib/test_frontend.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/test_ipalib/test_frontend.py b/tests/test_ipalib/test_frontend.py index 5f7ce65fb..528609d9e 100644 --- a/tests/test_ipalib/test_frontend.py +++ b/tests/test_ipalib/test_frontend.py @@ -615,7 +615,7 @@ class test_Command(ClassChecker): assert o.run.im_func is self.cls.run.im_func assert ('forward', args, kw) == o.run(*args, **kw) - def test_validate_output(self): + def test_validate_output_basic(self): """ Test the `ipalib.frontend.Command.validate_output` method. """ @@ -646,7 +646,18 @@ class test_Command(ClassChecker): 'Example', ['azz', 'fee'], wrong ) - # Test with per item type validation: + # Test with different keys: + wrong = dict(baz=1, xyzzy=2, quux=3) + e = raises(ValueError, inst.validate_output, wrong) + assert str(e) == '%s.validate_output(): missing keys %r in %r' % ( + 'Example', ['bar', 'foo'], wrong + ), str(e) + + def test_validate_output_per_type(self): + """ + Test `ipalib.frontend.Command.validate_output` per-type validation. + """ + class Complex(self.cls): has_output = ( output.Output('foo', int), @@ -667,6 +678,11 @@ class test_Command(ClassChecker): 'Complex.validate_output()', 'bar', list, int, 17 ) + def test_validate_output_nested(self): + """ + Test `ipalib.frontend.Command.validate_output` nested validation. + """ + class Subclass(output.ListOfEntries): pass |