[Freeipa-devel] [PATCH 0042] Make lint work on Fedora 22.

David Kupka dkupka at redhat.com
Mon Apr 13 11:23:19 UTC 2015


On 04/10/2015 02:55 PM, Simo Sorce wrote:
> On Fri, 2015-04-10 at 12:55 +0200, Lukas Slebodnik wrote:
>> On (08/04/15 08:53), Simo Sorce wrote:
>>> On Wed, 2015-04-08 at 10:22 +0200, David Kupka wrote:
>>>> On 04/06/2015 02:48 PM, Simo Sorce wrote:
>>>>> On Mon, 2015-03-30 at 12:15 +0200, David Kupka wrote:
>>>>>> On 03/30/2015 07:12 AM, Jan Cholasta wrote:
>>>>>>> Dne 28.3.2015 v 00:05 Petr Vobornik napsal(a):
>>>>>>>> On 27.3.2015 14:58, David Kupka wrote:
>>>>>>>>> pylint changed slightly so we must react otherwise we'll be unable to
>>>>>>>>> build freeipa rpms on Fedora 22. This patch should go to master for sure
>>>>>>>>> but I don't know if we want it in 4.1.
>>>>>>>>>
>>>>>>>>
>>>>>>>> ACK
>>>>>>>
>>>>>>> Are all the new disables really just false positives?
>>>>>>
>>>>>> It seems to me as a false positives.
>>>>>>
>>>>>> 1. ipalib/plugins/otptoken.py:552: [E1101(no-member),
>>>>>> otptoken_sync.forward] Module 'ssl' has no 'PROTOCOL_TLSv1' member)
>>>>>>
>>>>>>    >>> import ssl
>>>>>>    >>> ssl.PROTOCOL_TLSv1
>>>>>> 3
>>>>>>
>>>>>> 2. ipaserver/install/ipa_otptoken_import.py:63: [E1101(no-member),
>>>>>> convertDate] Instance of 'tuple' has no 'tzinfo' member)
>>>>>> ipaserver/install/ipa_otptoken_import.py:64: [E1101(no-member),
>>>>>> convertDate] Instance of 'tuple' has no 'timetuple' member)
>>>>>>
>>>>>> dateutil.parser.parse() returns datetime.datetime object and it has
>>>>>> both tzinfo and timetuple methods
>>>>>> (https://docs.python.org/2/library/datetime.html#datetime-objects)
>>>>>>
>>>>>> 3. ipapython/dnssec/ldapkeydb.py:26: [E1127(invalid-slice-index),
>>>>>> uri_escape] Slice index is not an int, None, or instance with __index__)
>>>>>>
>>>>>> This is the line lint is complaining about:
>>>>>> out += '%'.join(hexval[i:i+2] for i in range(0, len(hexval), 2))
>>>>>> I don't see a chance for 'i' or 'i+1' to be anything else than integers.
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> tested on:
>>>>>>>> - F21: ipa-4-1, master branch
>>>>>>>> - F22: master branch.
>>>>>>>>
>>>>>>>> IMHO it could got to ipa-4-1 branch because of FreeIPA 4.1.4 in F22
>>>>>>>
>>>>>
>>>>> This patch doesn't seem to fix all my issues building on F22, so
>>>>> tentative NACK.
>>>>
>>>> I tested it this way:
>>>> 1. started with Fedora-22-x86_64-minimal system
>>>> 2. dnf install git
>>>> 3. clone freeipa
>>>> 4. make version-update # to get freeipa.spec
>>>> 5. dnf install `awk '/^BuildRequires/ {print $2}' freeipa.spec`
>>>> 6. ./make-lint
>>>>
>>>>>
>>>>> It seem the main offenders are "No value for argument 'second' in method
>>>>> call" (this one only in test_ipautul.py) and "No value for argument
>>>>> 'extClass' in method call" sprinkled around various test plugins.
>>>>> These cause E1120(no-value-for-parameter).
>>>>
>>>> Could you please paste the output of make-lint somewhere?
>>>
>>> Here it is.
>>> This is with my f22 desktop, fully updated with buildrequires running
>>> make-lint straight after applying your patch:
>>>
>>> ************* Module ipatests.test_ipapython.test_ipautil
>>> ipatests/test_ipapython/test_ipautil.py:93: [E1120(no-value-for-parameter), TestCIDict.test_len] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:96: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:97: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:98: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:99: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:100: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:101: [E1120(no-value-for-parameter), TestCIDict.test_getitem] No value for argument 'excClass' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:105: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:106: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:107: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:108: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:109: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:110: [E1120(no-value-for-parameter), TestCIDict.test_get] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:114: [E1120(no-value-for-parameter), TestCIDict.test_setitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:116: [E1120(no-value-for-parameter), TestCIDict.test_setitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:128: [E1120(no-value-for-parameter), TestCIDict.test_clear] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:130: [E1120(no-value-for-parameter), TestCIDict.test_clear] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:140: [E1120(no-value-for-parameter), TestCIDict.test_copy] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:143: [E1120(no-value-for-parameter), TestCIDict.test_copy] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:161: [E1120(no-value-for-parameter), TestCIDict.test_items] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:179: [E1120(no-value-for-parameter), TestCIDict.test_iteritems] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:189: [E1120(no-value-for-parameter), TestCIDict.test_iterkeys] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:199: [E1120(no-value-for-parameter), TestCIDict.test_itervalues] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:207: [E1120(no-value-for-parameter), TestCIDict.test_keys] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:217: [E1120(no-value-for-parameter), TestCIDict.test_values] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:229: [E1120(no-value-for-parameter), TestCIDict.test_update] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:232: [E1120(no-value-for-parameter), TestCIDict.test_update] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:253: [E1120(no-value-for-parameter), TestCIDict.test_update_duplicate_values_dict] No value for argument 'excClass' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:257: [E1120(no-value-for-parameter), TestCIDict.test_update_duplicate_values_list] No value for argument 'excClass' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:261: [E1120(no-value-for-parameter), TestCIDict.test_update_duplicate_values_kwargs] No value for argument 'excClass' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:270: [E1120(no-value-for-parameter), TestCIDict.test_setdefault] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:273: [E1120(no-value-for-parameter), TestCIDict.test_setdefault] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:275: [E1120(no-value-for-parameter), TestCIDict.test_setdefault] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:278: [E1120(no-value-for-parameter), TestCIDict.test_setdefault] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:280: [E1120(no-value-for-parameter), TestCIDict.test_setdefault] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:283: [E1120(no-value-for-parameter), TestCIDict.test_pop] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:286: [E1120(no-value-for-parameter), TestCIDict.test_pop] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:289: [E1120(no-value-for-parameter), TestCIDict.test_pop] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:290: [E1120(no-value-for-parameter), TestCIDict.test_pop] No value for argument 'excClass' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:295: [E1120(no-value-for-parameter), TestCIDict.test_popitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:298: [E1120(no-value-for-parameter), TestCIDict.test_popitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:303: [E1120(no-value-for-parameter), TestCIDict.test_popitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:308: [E1120(no-value-for-parameter), TestCIDict.test_popitem] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:323: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:324: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:325: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:326: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:327: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:328: [E1120(no-value-for-parameter), TestTimeParser.test_simple] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:334: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:335: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:336: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:337: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:338: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:339: [E1120(no-value-for-parameter), TestTimeParser.test_hour_min_sec] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:345: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:346: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:347: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:348: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:349: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:350: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:355: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:356: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:357: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:358: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:359: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:360: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:365: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:366: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:367: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:368: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:369: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:370: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:371: [E1120(no-value-for-parameter), TestTimeParser.test_fractions] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:377: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:378: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:380: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:385: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:386: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:388: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:393: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:394: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:398: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:403: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:404: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ipatests/test_ipapython/test_ipautil.py:406: [E1120(no-value-for-parameter), TestTimeParser.test_time_zones] No value for argument 'second' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_cert_plugin
>>> ipatests/test_xmlrpc/test_cert_plugin.py:132: [E1120(no-value-for-parameter), test_cert.test_0001_cert_add] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_automount_plugin
>>> ipatests/test_xmlrpc/test_automount_plugin.py:297: [E1120(no-value-for-parameter), test_automount.test_b_automountkey_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:309: [E1120(no-value-for-parameter), test_automount.test_c_automountlocation_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:318: [E1120(no-value-for-parameter), test_automount.test_d_automountmap_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:378: [E1120(no-value-for-parameter), test_automount_direct.test_3_automountlocation_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:453: [E1120(no-value-for-parameter), test_automount_indirect.test_3_automountkey_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:465: [E1120(no-value-for-parameter), test_automount_indirect.test_4_automountmap_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:477: [E1120(no-value-for-parameter), test_automount_indirect.test_5_automountlocation_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:560: [E1120(no-value-for-parameter), test_automount_indirect_no_parent.test_3_automountkey_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:572: [E1120(no-value-for-parameter), test_automount_indirect_no_parent.test_4_automountmap_del] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_automount_plugin.py:584: [E1120(no-value-for-parameter), test_automount_indirect_no_parent.test_5_automountlocation_del] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_sudorule_plugin
>>> ipatests/test_xmlrpc/test_sudorule_plugin.py:759: [E1120(no-value-for-parameter), test_sudorule.test_l_sudorule_order] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_sudorule_plugin.py:764: [E1120(no-value-for-parameter), test_sudorule.test_l_sudorule_order] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_sudorule_plugin.py:769: [E1120(no-value-for-parameter), test_sudorule.test_l_sudorule_order] No value for argument 'excClass' in method call)
>>> ipatests/test_xmlrpc/test_sudorule_plugin.py:783: [E1120(no-value-for-parameter), test_sudorule.test_m_sudorule_del] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_passwd_plugin
>>> ipatests/test_xmlrpc/test_passwd_plugin.py:68: [E1120(no-value-for-parameter), test_passwd.test_3_user_del] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_pwpolicy_plugin
>>> ipatests/test_xmlrpc/test_pwpolicy_plugin.py:213: [E1120(no-value-for-parameter), test_pwpolicy.test_d_pwpolicy_show] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_xmlrpc.test_hbac_plugin
>>> ipatests/test_xmlrpc/test_hbac_plugin.py:487: [E1120(no-value-for-parameter), test_hbac.test_z_hbacrule_del] No value for argument 'excClass' in method call)
>>> ************* Module ipatests.test_ipaserver.test_ldap
>>> ipatests/test_ipaserver/test_ldap.py:232: [E1120(no-value-for-parameter), test_LDAPEntry.test_pop] No value for argument 'excClass' in method call)
>>>
>>
>> I cannot see such warnings and make-lint passed without any problem with
>> David's patch.
>>
>> [root at 8e5f379469b0 freeipa]# rpm -qa | grep pytest
>> pytest-2.6.4-1.fc22.noarch
>> python-pytest-sourceorder-0.4-2.fc22.noarch
>> python-pytest-multihost-0.6-2.fc22.noarch
>
> I have the same packages
> What version of pylint ?
>
> I have pylint-1.4.1-3.fc22.noarch
>
> Simo.
>

Thanks to Honza I've finally found a way to get the same errors you're 
reporting. All of them seems to be false positives but I'll investigate 
little more to be sure.

The thing is that python-nose package that is still used in some test is 
not in BuildRequires so I didn't install it.

Another weird thing is that lint do not complain that tests are 
importing nose that is not installed.

-- 
David Kupka




More information about the Freeipa-devel mailing list