This is in keeping with the way that piglitconfig.get() works in python3 (although there are some corner case differences since in python3 it uses keyword only arguments).
Signed-off-by: Dylan Baker <[email protected]> --- This would actually be pretty useful in a number of cases in piglit currently, and a few patches on the mailing list. framework/core.py | 6 +++--- framework/tests/core_tests.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/framework/core.py b/framework/core.py index 63cb911..dbd6895 100644 --- a/framework/core.py +++ b/framework/core.py @@ -58,7 +58,7 @@ class PiglitConfig(ConfigParser.SafeConfigParser): ConfigParser.SafeConfigParser.readfp(self, fp, filename) self.filename = os.path.abspath(filename or fp.name) - def safe_get(self, *args, **kwargs): + def safe_get(self, section, option, fallback=None, **kwargs): """A version of self.get that doesn't raise NoSectionError or NoOptionError. @@ -67,9 +67,9 @@ class PiglitConfig(ConfigParser.SafeConfigParser): """ try: - return self.get(*args, **kwargs) + return self.get(section, option, **kwargs) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): - return None + return fallback def required_get(self, section, option, **kwargs): """A version fo self.get that raises PiglitFatalError. diff --git a/framework/tests/core_tests.py b/framework/tests/core_tests.py index af09339..9be9c57 100644 --- a/framework/tests/core_tests.py +++ b/framework/tests/core_tests.py @@ -267,3 +267,7 @@ class TestPiglitConfig(object): """core.PiglitConfig: required_get raises PiglitFatalError if the section is missing """ self.conf.required_get('invalid', 'invalid') + + def test_safe_get_fallback(self): + """core.PiglitConfig: safe_get returns the value of fallback when the section or option is missing""" + nt.eq_(self.conf.safe_get('invalid', 'invalid', fallback='foo'), 'foo') -- 2.5.3 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
