Item: assert type also in property getter

also: fixed Item.xattrs to be StableDict (not just a dict, as the
msgpack unpacker gives us)
This commit is contained in:
Thomas Waldmann 2022-05-29 17:32:42 +02:00
parent 7b138cc710
commit 9d684120a2
1 changed files with 6 additions and 1 deletions

View File

@ -207,6 +207,8 @@ class PropDict:
raise AttributeError(attr_error_msg) from None
if decode is not None:
value = decode(value)
if not isinstance(value, value_type):
raise TypeError(type_error_msg)
return value
def _set(self, value):
@ -392,7 +394,10 @@ class Item(PropDict):
v = fix_timestamp(v)
if k in ('acl_access', 'acl_default', 'acl_extended', 'acl_nfs4'):
v = fix_bytes_value(d, k)
# TODO: xattrs
if k == 'xattrs':
if not isinstance(v, StableDict):
v = StableDict(v)
# TODO: xattrs key/value types
self._dict[k] = v