def test_set_call_prefix_validator(): mv = MetadataValidatorSet([ MetadataValidator('p1', prefix_validators=[ lambda p, k, v: (p, k, v, 1), lambda p, k, v: (p, k, v, 2) ]), MetadataValidator('p2', prefix_validators=[lambda p, k, v: (p, k, v, 3)]) ]) assert mv.call_prefix_validator('p1', 0, 'key1', {'foo', 'bar'}) == ('p1', 'key1', {'foo', 'bar'}, 1) assert mv.call_prefix_validator('p1', 1, 'key11', {'foo', 'bat'}) == ('p1', 'key11', {'foo', 'bat'}, 2) assert mv.call_prefix_validator('p2', 0, 'key2', {'foo', 'baz'}) == ('p2', 'key2', {'foo', 'baz'}, 3)
def _call_prefix_validator_fail(vals, prefix, index, key, expected): mv = MetadataValidatorSet(vals) with raises(Exception) as got: mv.call_prefix_validator(prefix, index, key, {}) assert_exception_correct(got.value, expected)