[ovs-dev] [PATCH] python: KeyError shouldn't be raised from __getattr__

Russell Bryant russell at ovn.org
Wed Mar 14 15:35:21 UTC 2018


I've applied this to master and branch-2.9.  Thanks!

On Mon, Mar 12, 2018 at 6:52 AM, Timothy Redaelli <tredaelli at redhat.com> wrote:
> On Python 3 hasattr only intercepts AttributeError exception.
> On Python2, instead, hasattr intercepts all the exceptions.
>
> This means __getattr__ shouldn't return KeyError when the attribute
> doesn't exists, but it should raise AttributeError instead.
>
> Fixes: 2d54d8011e14 ("Python-IDL: getattr after mutate fix")
> Signed-off-by: Timothy Redaelli <tredaelli at redhat.com>
> ---
>  python/ovs/db/idl.py | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/python/ovs/db/idl.py b/python/ovs/db/idl.py
> index 5a4d129c0..773a604ed 100644
> --- a/python/ovs/db/idl.py
> +++ b/python/ovs/db/idl.py
> @@ -774,7 +774,11 @@ class Row(object):
>          assert self._changes is not None
>          assert self._mutations is not None
>
> -        column = self._table.columns[column_name]
> +        try:
> +            column = self._table.columns[column_name]
> +        except KeyError:
> +            raise AttributeError("%s instance has no attribute '%s'" %
> +                                 (self.__class__.__name__, column_name))
>          datum = self._changes.get(column_name)
>          inserts = None
>          if '_inserts' in self._mutations.keys():
> --
> 2.14.3
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev



-- 
Russell Bryant


More information about the dev mailing list