[Freeipa-devel] [PATCH 0021] Don't special case the Password class in Param.__init__()

Petr Viktorin pviktori at redhat.com
Mon Oct 7 11:47:08 UTC 2013


On 10/04/2013 07:34 PM, Nathaniel McCallum wrote:
> This patch is preparatory for the OTP CLI patch.

Thanks for the patch; it needs some work.

>>From 2678ff4e2f22e7e81bf40b30ffcd0efe0ecf08c2 Mon Sep 17 00:00:00 2001
> From: Nathaniel McCallum<npmccallum at redhat.com>
> Date: Mon, 30 Sep 2013 13:06:37 -0400
> Subject: [PATCH] Don't special case the Password class in Param.__init__()
>
> ---
>   ipalib/parameters.py | 20 ++++++++++----------
>   1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/ipalib/parameters.py b/ipalib/parameters.py
> index fbcb87537ba662763a00e12178d424a8718baa8a..925f442968ab93b2b6df4e386d03558300bf5990 100644
> --- a/ipalib/parameters.py
> +++ b/ipalib/parameters.py
> @@ -398,11 +398,11 @@ class Param(ReadOnly):
>           # We keep these values to use in __repr__():
>           self.param_spec = name
>           self.__kw = dict(kw)
> -
> -        if isinstance(self, Password):
> -            self.password = True
> -        else:
> +
> +        try:
>               self.password = False
> +        except AttributeError:
> +            pass


Setting the attribute here will always pass, and always re-set 
`password` to False, even for Password instances.

A class-level attribute (both in Param and Password) would work better here:

class Param(ReadOnly):
     ...
     password = False
     ...

class Password(Str):
     ...
     password = True
     ...


You can run a part of the test suite to verify changes in ipalib 
(test_ipalib happens to not need an installed server):
./make-test ipatests/test_ipalib
or just for parameters:
./make-test ipatests/test_ipalib/test_parameters.py


BTW, Git complains trailing whitespace. I found the following Git 
setting useful to spot this before `git am`:
$ git config color.diff.whitespace 'red reverse'

-- 
Petr³




More information about the Freeipa-devel mailing list