From da0a1afad2a71a01e7665dd8eada834c98a23345 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 24 Mar 2021 13:23:43 +0100 Subject: Catch AttributeError for FormatString configtype (cherry picked from commit b171f3c0f2bd52f30330843a742d4bf9600b420d) --- qutebrowser/config/configtypes.py | 2 +- tests/unit/config/test_configtypes.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py index cc3f10ceb..49a1f0356 100644 --- a/qutebrowser/config/configtypes.py +++ b/qutebrowser/config/configtypes.py @@ -1567,7 +1567,7 @@ class FormatString(BaseType): try: value.format(**{k: '' for k in self.fields}) - except (KeyError, IndexError) as e: + except (KeyError, IndexError, AttributeError) as e: raise configexc.ValidationError(value, "Invalid placeholder " "{}".format(e)) except ValueError as e: diff --git a/tests/unit/config/test_configtypes.py b/tests/unit/config/test_configtypes.py index 1a0a9cb43..28c52a1e0 100644 --- a/tests/unit/config/test_configtypes.py +++ b/tests/unit/config/test_configtypes.py @@ -1832,6 +1832,8 @@ class TestFormatString: '{foo} {bar} {baz}', '{foo} {bar', '{1}', + '{foo.attr}', + '{foo[999]}', ]) def test_to_py_invalid(self, typ, val): with pytest.raises(configexc.ValidationError): -- cgit v1.2.3-54-g00ecf