[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