def _key_metadata_fail_(vals, keys, expected): mv = MetadataValidatorSet(vals) with raises(Exception) as got: mv.key_metadata(keys) assert_exception_correct(got.value, expected)
def test_set_with_key_metadata(): mv = MetadataValidatorSet([ MetadataValidator('pre1', prefix_validators=[_noop], metadata={ 'a': 'b', 'c': 'd' }), MetadataValidator('pre2', prefix_validators=[_noop]), MetadataValidator('pre3', prefix_validators=[_noop], metadata={'c': 'd'}), MetadataValidator('pre1', [_noop]), MetadataValidator('pre2', [_noop], metadata={ 'e': 'f', 'h': 'i' }), MetadataValidator('pre3', [_noop], metadata={'h': 'i'}) ]) assert mv.key_metadata([]) == {} assert mv.prefix_key_metadata([]) == {} assert mv.key_metadata(['pre1']) == {'pre1': {}} assert mv.prefix_key_metadata(['pre1'], exact_match=True) == { 'pre1': { 'a': 'b', 'c': 'd' } } assert mv.key_metadata(['pre1', 'pre3']) == { 'pre1': {}, 'pre3': { 'h': 'i' } } assert mv.prefix_key_metadata(['pre1', 'pre2']) == { 'pre1': { 'a': 'b', 'c': 'd' }, 'pre2': {} } assert mv.key_metadata(['pre1', 'pre2', 'pre3']) == { 'pre1': {}, 'pre2': { 'e': 'f', 'h': 'i' }, 'pre3': { 'h': 'i' } } assert mv.prefix_key_metadata(['pre1', 'pre2', 'pre3']) == { 'pre1': { 'a': 'b', 'c': 'd' }, 'pre2': {}, 'pre3': { 'c': 'd' } }