[Piglit] [PATCH] framework/core: add fallback to PiglitConfig.safe_get

Thomas Wood thomas.wood at intel.com
Wed Sep 23 03:33:19 PDT 2015


On 22 September 2015 at 21:04, Dylan Baker <baker.dylan.c at gmail.com> wrote:
> 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 <dylanx.c.baker at intel.com>

Reviewed-by: Thomas Wood <thomas.wood at intel.com>


> ---
>
> 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
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list