From 203b10703e5df20939b88a2ce29bb961cce7e4b6 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 29 May 2020 10:28:38 +1000 Subject: py/modbuiltins: Fix getattr to work with class raising AttributeError. Fixes issue #6089. --- tests/basics/builtin_getattr.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/basics/builtin_getattr.py') diff --git a/tests/basics/builtin_getattr.py b/tests/basics/builtin_getattr.py index 59cb7e7f7a..afa4ab3293 100644 --- a/tests/basics/builtin_getattr.py +++ b/tests/basics/builtin_getattr.py @@ -16,3 +16,15 @@ print(getattr(a, "meth")(5)) print(getattr(a, "_none_such", 123)) print(getattr(list, "foo", 456)) print(getattr(a, "va" + "r2")) + +# test a class that defines __getattr__ and may raise AttributeError +class B: + def __getattr__(self, attr): + if attr == "a": + return attr + else: + raise AttributeError +b = B() +print(getattr(b, "a")) +print(getattr(b, "a", "default")) +print(getattr(b, "b", "default")) -- cgit v1.2.3