python/ovs/db/idl: getattr(Row) raises TypeError, not AttributeError.
authorIsaku Yamahata <yamahata@valinux.co.jp>
Thu, 27 Sep 2012 09:29:45 +0000 (18:29 +0900)
committerBen Pfaff <blp@nicira.com>
Thu, 27 Sep 2012 16:11:49 +0000 (09:11 -0700)
commit3b4c362f4078549d9a3bf18a2393e12e4b3ff9f7
tree0173a25ff4914b65658634bcf400e0de3aee7f69
parentf89b7ce502441c9b71ac469846049ecacabcd888
python/ovs/db/idl: getattr(Row) raises TypeError, not AttributeError.

In some cases getattr(Row instance, attrname) doesn't raise AttributeError,
but TypeError

> File "python/ovs/db/idl.py", line 554, in __getattr__
>     datum = self._data[column_name]
> TypeError: 'NoneType' object has no attribute '__getitem__'

So getattr(Row instance, attrname, default value) doesn't work.
This occurs when row._changes doesn't include attrname and row._data is None.
So teach Row.__getattr__ _data=None case.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
python/ovs/db/idl.py
tests/ovsdb-idl.at
tests/test-ovsdb.py