lists.arthurdejong.org
RSS feed

nss-pam-ldapd branch master updated. 0.9.0-43-g882f7be

[Date Prev][Date Next] [Thread Prev][Thread Next]

nss-pam-ldapd branch master updated. 0.9.0-43-g882f7be



This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "nss-pam-ldapd".

The branch, master has been updated
       via  882f7be5360fa94db9c65607b0ee6925aa4f2f56 (commit)
       via  79209ee3892a7ec19400e5ef80573f17883e1aab (commit)
       via  e0491d2536c59dfa264542e3c621972cafb5b87a (commit)
      from  7108b1f41474db7c01c402be798d504c43502cfe (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://arthurdejong.org/git/nss-pam-ldapd/commit/?id=882f7be5360fa94db9c65607b0ee6925aa4f2f56

commit 882f7be5360fa94db9c65607b0ee6925aa4f2f56
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Aug 18 15:30:52 2013 +0200

    Run pylint as a test
    
    This runs a somewhat limited pylint run against the source files. It
    should at least catch some issues.

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3c6bfce..22c454a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -21,7 +21,7 @@
 TESTS = test_dict test_set test_tio test_expr test_getpeercred test_cfg \
         test_myldap.sh test_common test_nsscmds.sh test_pamcmds.sh
 if HAVE_PYTHON
-TESTS += test_pycompile.sh test_pynslcd_cache.py
+TESTS += test_pycompile.sh test_pylint.sh test_pynslcd_cache.py
 endif
 
 AM_TESTS_ENVIRONMENT = PYTHON='@PYTHON@'; export PYTHON;
@@ -31,8 +31,8 @@ check_PROGRAMS = test_dict test_set test_tio test_expr 
test_getpeercred \
                  lookup_netgroup lookup_shadow
 
 EXTRA_DIST = nslcd-test.conf test_myldap.sh test_nsscmds.sh test_pamcmds.sh \
-             test_pycompile.sh in_testenv.sh test_pamcmds.expect \
-             usernames.txt test_pynslcd_cache.py
+             test_pycompile.sh test_pylint.sh pylint.rc in_testenv.sh \
+             test_pamcmds.expect usernames.txt test_pynslcd_cache.py
 
 CLEANFILES = $(EXTRA_PROGRAMS)
 
diff --git a/tests/pylint.rc b/tests/pylint.rc
new file mode 100644
index 0000000..7f0bc13
--- /dev/null
+++ b/tests/pylint.rc
@@ -0,0 +1,235 @@
+[MASTER]
+
+# Profiled execution.
+profile=no
+
+# Pickle collected data for later comparisons.
+persistent=no
+
+
+
+[MESSAGES CONTROL]
+
+# Enable the message, report, category or checker with the given id(s). You can
+# either give multiple identifier separated by comma (,) or put this option
+# multiple time.
+enable=
+
+# Disable the message, report, category or checker with the given id(s). You
+# can either give multiple identifier separated by comma (,) or put this option
+# multiple time (only on the command line, not in the configuration file where
+# it should appear only once).
+disable=E1101
+
+
+[REPORTS]
+
+# Set the output format. Available formats are text, parseable, colorized, msvs
+# (visual studio) and html
+output-format=colorized
+
+# Include message's id in output
+include-ids=yes
+
+# Put messages in a separate file for each module / package specified on the
+# command line instead of printing them on stdout. Reports (if any) will be
+# written in a file name "pylint_global.[txt|html]".
+files-output=no
+
+# Tells whether to display a full report or only the messages
+reports=no
+
+# Python expression which should return a note less than 10 (10 is the highest
+# note). You have access to the variables errors warning, statement which
+# respectively contain the number of errors / warnings messages and the total
+# number of statements analyzed. This is used by the global evaluation report
+# (RP0004).
+evaluation=0
+
+# Add a comment according to your evaluation note. This is used by the global
+# evaluation report (RP0004).
+comment=no
+
+
+[VARIABLES]
+
+# Tells whether we should check for unused import in __init__ files.
+init-import=no
+
+# A regular expression matching the beginning of the name of dummy variables
+# (i.e. not used).
+dummy-variables-rgx=_|dummy
+
+# List of additional names supposed to be defined in builtins. Remember that
+# you should avoid to define new builtins when possible.
+additional-builtins=
+
+
+[TYPECHECK]
+
+# Tells whether missing members accessed in mixin class should be ignored. A
+# mixin class is detected if its name ends with "mixin" (case insensitive).
+ignore-mixin-members=yes
+
+# List of classes names for which member attributes should not be checked
+# (useful for classes with attributes dynamically set).
+ignored-classes=SQLObject
+
+# When zope mode is activated, add a predefined set of Zope acquired attributes
+# to generated-members.
+zope=no
+
+# List of members which are set dynamically and missed by pylint inference
+# system, and so shouldn't trigger E0201 when accessed. Python regular
+# expressions are accepted.
+generated-members=REQUEST,acl_users,aq_parent,
+
+
+[SIMILARITIES]
+
+# Minimum lines number of a similarity.
+min-similarity-lines=6
+
+# Ignore comments when computing similarities.
+ignore-comments=yes
+
+# Ignore docstrings when computing similarities.
+ignore-docstrings=yes
+
+
+[MISCELLANEOUS]
+
+# List of note tags to take in consideration, separated by a comma.
+notes=FIXME,XXX,TODO
+
+
+[FORMAT]
+
+# Maximum number of characters on a single line.
+max-line-length=110
+
+# Maximum number of lines in a module
+max-module-lines=1000
+
+# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
+# tab).
+indent-string='    '
+
+
+[BASIC]
+
+# Required attributes for module, separated by a comma
+required-attributes=
+
+# List of builtins function names that should not be used, separated by a comma
+bad-functions=map,filter,apply,input
+
+# Regular expression which should only match correct module names
+module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
+
+# Regular expression which should only match correct module level names
+const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
+
+# Regular expression which should only match correct class names
+class-rgx=[A-Z_][a-zA-Z0-9]+$
+
+# Regular expression which should only match correct function names
+function-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct method names
+method-rgx=[a-z_][a-z0-9_]{1,30}$
+
+# Regular expression which should only match correct instance attribute names
+attr-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct argument names
+argument-rgx=[a-z_][a-z0-9_]{1,30}$
+
+# Regular expression which should only match correct variable names
+variable-rgx=[a-z_][a-z0-9_]{0,30}$
+
+# Regular expression which should only match correct list comprehension /
+# generator expression variable names
+inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
+
+# Good variable names which should always be accepted, separated by a comma
+good-names=i,j,k,ex,Run,_
+
+# Bad variable names which should always be refused, separated by a comma
+bad-names=foo,bar,baz,toto,tutu,tata
+
+# Regular expression which should only match functions or classes name which do
+# not require a docstring
+no-docstring-rgx=__.*__
+
+
+[DESIGN]
+
+# Maximum number of arguments for function / method
+max-args=5
+
+# Argument names that match this expression will be ignored. Default to name
+# with leading underscore
+ignored-argument-names=_.*
+
+# Maximum number of locals for function / method body
+max-locals=15
+
+# Maximum number of return / yield for function / method body
+max-returns=6
+
+# Maximum number of branch for function / method body
+max-branchs=12
+
+# Maximum number of statements in function / method body
+max-statements=50
+
+# Maximum number of parents for a class (see R0901).
+max-parents=7
+
+# Maximum number of attributes for a class (see R0902).
+max-attributes=7
+
+# Minimum number of public methods for a class (see R0903).
+min-public-methods=1
+
+# Maximum number of public methods for a class (see R0904).
+max-public-methods=20
+
+
+[IMPORTS]
+
+# Deprecated modules which should not be used, separated by a comma
+deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
+
+# Create a graph of every (i.e. internal and external) dependencies in the
+# given file (report RP0402 must not be disabled)
+import-graph=
+
+# Create a graph of external dependencies in the given file (report RP0402 must
+# not be disabled)
+ext-import-graph=
+
+# Create a graph of internal dependencies in the given file (report RP0402 must
+# not be disabled)
+int-import-graph=
+
+
+[CLASSES]
+
+# List of interface methods to ignore, separated by a comma. This is used for
+# instance to not check methods defines in Zope's Interface base class.
+ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
+
+# List of method names used to declare (i.e. assign) instance attributes.
+defining-attr-methods=__init__,__new__,setUp
+
+# List of valid names for the first argument in a class method.
+valid-classmethod-first-arg=cls
+
+
+[EXCEPTIONS]
+
+# Exceptions that will emit a warning when being caught. Defaults to
+# "Exception"
+overgeneral-exceptions=Exception
diff --git a/tests/test_pylint.sh b/tests/test_pylint.sh
new file mode 100755
index 0000000..0ba2f83
--- /dev/null
+++ b/tests/test_pylint.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# test_pylint.sh - run pylint on the source to find errors
+#
+# Copyright (C) 2013 Arthur de Jong
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+set -e
+
+# find source directory
+srcdir="${srcdir-`dirname "$0"`}"
+top_srcdir="${top_srcdir-${srcdir}/..}"
+
+# if Pylint is missing, ignore
+if ! pylint --version > /dev/null 2> /dev/null
+then
+  echo "Pylint not found"
+  exit 77
+fi
+
+# get rcfile absolute path
+absdir="$( (cd "$srcdir"; pwd) )"
+rcfile="$absdir/pylint.rc"
+
+# get the disable option from the configuration file
+# (this somehow doesn't work in pylint)
+disable=$(sed -n 's/^disable=\(.*\)$/\1/p' "$rcfile")
+
+# run Pylint in both pynslcd and utils directories
+( cd "$top_srcdir/pynslcd" ;
+  pylint --errors-only --rcfile "$rcfile" --disable "$disable" *.py)
+( cd "$top_srcdir/utils" ;
+  pylint --errors-only --rcfile "$rcfile" --disable "$disable" *.py)
+
+# Pylint has the following exit codes:
+#  0 if everything went fine
+#  1 if a fatal message was issued
+#  2 if an error message was issued
+#  4 if a warning message was issued
+#  8 if a refactor message was issued
+#  16 if a convention message was issued
+#  32 on usage error
+# (exit codes are ORed)

http://arthurdejong.org/git/nss-pam-ldapd/commit/?id=79209ee3892a7ec19400e5ef80573f17883e1aab

commit 79209ee3892a7ec19400e5ef80573f17883e1aab
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Aug 18 15:29:19 2013 +0200

    Rename isvalidname() to is_valid_name() in pynslcd

diff --git a/pynslcd/common.py b/pynslcd/common.py
index 146ed4c..df2a644 100644
--- a/pynslcd/common.py
+++ b/pynslcd/common.py
@@ -29,7 +29,7 @@ import cfg
 import constants
 
 
-def isvalidname(name):
+def is_valid_name(name):
     """Checks to see if the specified name seems to be a valid user or group
     name.
 
@@ -47,7 +47,7 @@ def isvalidname(name):
 
 def validate_name(name):
     """Checks to see if the specified name seems to be a valid user or group
-    name. See isvalidname()."""
+    name. See is_valid_name()."""
     if not cfg.validnames.search(name):
         raise ValueError('%r: denied by validnames option' % name)
 
diff --git a/pynslcd/group.py b/pynslcd/group.py
index 10e3423..965148d 100644
--- a/pynslcd/group.py
+++ b/pynslcd/group.py
@@ -123,7 +123,7 @@ class GroupRequest(common.Request):
     def get_members(self, attributes, members, subgroups, seen):
         # add the memberUid values
         for member in clean(attributes['memberUid']):
-            if common.isvalidname(member):
+            if common.is_valid_name(member):
                 members.add(member)
         # translate and add the member values
         for memberdn in clean(attributes['member']):
@@ -131,7 +131,7 @@ class GroupRequest(common.Request):
                 continue
             seen.add(memberdn)
             member = passwd.dn2uid(self.conn, memberdn)
-            if member and common.isvalidname(member):
+            if member and common.is_valid_name(member):
                 members.add(member)
             elif cfg.nss_nested_groups:
                 subgroups.append(memberdn)
@@ -155,7 +155,7 @@ class GroupRequest(common.Request):
                 self.get_members(attributes2, members, subgroups, seen)
         # actually return the results
         for name in names:
-            if not common.isvalidname(name):
+            if not common.is_valid_name(name):
                 logging.warning('%s: %s: denied by validnames option', dn,
                                 attmap['cn'])
             else:
diff --git a/pynslcd/pam.py b/pynslcd/pam.py
index 7c01517..3a3d55d 100644
--- a/pynslcd/pam.py
+++ b/pynslcd/pam.py
@@ -131,7 +131,7 @@ class PAMRequest(common.Request):
                 logging.warning('%s: is missing a %s attribute', entry[0], 
passwd.attmap['uid'])
             value = values[0]
         # check the username
-        if value and not common.isvalidname(value):
+        if value and not common.is_valid_name(value):
             raise ValueError('%s: has invalid %s attribute', entry[0], 
passwd.attmap['uid'])
         # check if the username is different and update it if needed
         if value != parameters['username']:
diff --git a/pynslcd/passwd.py b/pynslcd/passwd.py
index a8e407f..a5e4d1f 100644
--- a/pynslcd/passwd.py
+++ b/pynslcd/passwd.py
@@ -84,7 +84,7 @@ class PasswdRequest(common.Request):
         home = attributes['homeDirectory'][0]
         shell = attributes['loginShell'][0]
         for name in names:
-            if not common.isvalidname(name):
+            if not common.is_valid_name(name):
                 logging.warning('%s: %s: denied by validnames option', dn, 
attmap['uid'])
             else:
                 for uid in uids:

http://arthurdejong.org/git/nss-pam-ldapd/commit/?id=e0491d2536c59dfa264542e3c621972cafb5b87a

commit e0491d2536c59dfa264542e3c621972cafb5b87a
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sat Aug 10 00:03:11 2013 +0200

    Run xmlto on manual pages as part of the tests

diff --git a/man/Makefile.am b/man/Makefile.am
index bb186bf..8a94461 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -46,6 +46,7 @@ EXTRA_DIST = $(ALL_MANS) $(ALL_MANS:=.xml)
 if GENMAN
 
 MAINTAINERCLEANFILES = $(ALL_MANS)
+CLEANFILES = $(ALL_MANS:=.html)
 
 SUFFIXES = .xml
 .xml:
@@ -59,3 +60,6 @@ SUFFIXES = .xml
        xmlto xhtml-nochunks $<
 
 endif
+
+# when running the test convert all manuals to HTML for extra testing
+check_DATA = $(ALL_MANS:=.html)

-----------------------------------------------------------------------

Summary of changes:
 man/Makefile.am      |    4 +
 pynslcd/common.py    |    4 +-
 pynslcd/group.py     |    6 +-
 pynslcd/pam.py       |    2 +-
 pynslcd/passwd.py    |    2 +-
 tests/Makefile.am    |    6 +-
 tests/pylint.rc      |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_pylint.sh |   57 ++++++++++++
 8 files changed, 306 insertions(+), 10 deletions(-)
 create mode 100644 tests/pylint.rc
 create mode 100755 tests/test_pylint.sh


hooks/post-receive
-- 
nss-pam-ldapd
-- 
To unsubscribe send an email to
nss-pam-ldapd-commits-unsubscribe@lists.arthurdejong.org or see
http://lists.arthurdejong.org/nss-pam-ldapd-commits/