diff --git a/src/quorum/__init__.py b/src/quorum/__init__.py index 1d2dd5a2..299b9198 100644 --- a/src/quorum/__init__.py +++ b/src/quorum/__init__.py @@ -116,8 +116,8 @@ leafs, load_form, load_locale, get_locale, get_langs, set_locale, reset_locale, anotate_async,\ anotate_secure, run_thread, camel_to_underscore, camel_to_readable, underscore_to_readable,\ generate_identifier, to_locale, nl_to_br, nl_to_br_jinja, sp_to_nbsp, sp_to_nbsp_jinja, unset, date_time,\ - quote, unquote, is_content_type, parse_content_type, verify, verify_equal, verify_not_equal, execute,\ - deprecated, JSONEncoder + quote, unquote, is_content_type, parse_content_type, verify, verify_equal, verify_not_equal, verify_many,\ + execute, deprecated, JSONEncoder from .validation import validate, validate_b, validate_e, safe, eq, gt, gte, lt, lte, not_null,\ not_empty, not_false, is_in, is_upper, is_lower, is_simple, is_email, is_url, is_regex, field_eq,\ field_gt, field_gte, field_lt, field_lte, string_gt, string_lt, string_eq, equals, not_past,\ diff --git a/src/quorum/test/util.py b/src/quorum/test/util.py index d1e0615a..a9bcb23a 100644 --- a/src/quorum/test/util.py +++ b/src/quorum/test/util.py @@ -519,3 +519,22 @@ def test_verify_not_equal(self): quorum.OperationalError, lambda: quorum.verify_not_equal(1, 1, exception = quorum.OperationalError) ) + + def test_verify_many(self): + result = quorum.verify_many((1 == 1, 2 == 2, 3 == 3)) + self.assertEqual(result, None) + + result = quorum.verify_many(("hello" == "hello",)) + self.assertEqual(result, None) + + self.assertRaises(quorum.AssertionError, lambda: quorum.verify_many((1 == 2,))) + + self.assertRaises(quorum.AssertionError, lambda: quorum.verify_many((1 == 1, 1 == 2))) + + self.assertRaises( + quorum.OperationalError, + lambda: quorum.verify_many( + (1 == 1, 1 == 2), + exception = quorum.OperationalError + ) + ) diff --git a/src/quorum/util.py b/src/quorum/util.py index 0eb6c7b7..cc6f22ac 100644 --- a/src/quorum/util.py +++ b/src/quorum/util.py @@ -1256,6 +1256,16 @@ def verify_not_equal(first, second, message = None, code = None, exception = Non **kwargs ) +def verify_many(sequence, message = None, code = None, exception = None, **kwargs): + for condition in sequence: + verify( + condition, + message = message, + code = code, + exception = exception, + **kwargs + ) + def execute(args, command = None, path = None, shell = True, encoding = None): if not encoding: encoding = sys.getfilesystemencoding() if command: args = command.split(" ")