This commit is contained in:
Kay0u 2020-12-04 16:38:12 +01:00
parent 4331cfa9d2
commit b31e2b026e
No known key found for this signature in database
GPG key ID: AAFEEB16CFA2AE2D
6 changed files with 62 additions and 35 deletions

View file

@ -121,6 +121,7 @@ def cli(args, top_parser, output_as=None, timeout=None):
) )
except MoulinetteError as e: except MoulinetteError as e:
import logging import logging
logging.getLogger(logging.main_logger).error(e.strerror) logging.getLogger(logging.main_logger).error(e.strerror)
return 1 return 1
return 0 return 0

View file

@ -11,8 +11,7 @@ logger = logging.getLogger("moulinette.authenticator.dummy")
class Authenticator(BaseAuthenticator): class Authenticator(BaseAuthenticator):
"""Dummy authenticator used for tests """Dummy authenticator used for tests"""
"""
vendor = "dummy" vendor = "dummy"

View file

@ -288,7 +288,10 @@ class _ActionsMapPlugin(object):
# Append messages route # Append messages route
app.route( app.route(
"/messages", name="messages", callback=self.messages, skip=["actionsmap"], "/messages",
name="messages",
callback=self.messages,
skip=["actionsmap"],
) )
# Append routes from the actions map # Append routes from the actions map
@ -810,7 +813,9 @@ class Interface(BaseInterface):
""" """
logger.debug( logger.debug(
"starting the server instance in %s:%d", host, port, "starting the server instance in %s:%d",
host,
port,
) )
try: try:

View file

@ -22,9 +22,11 @@ def read_file(file_path):
Keyword argument: Keyword argument:
file_path -- Path to the text file file_path -- Path to the text file
""" """
assert isinstance(file_path, basestring), ( assert isinstance(
"Error: file_path '%s' should be a string but is of type '%s' instead" file_path, basestring
% (file_path, type(file_path)) ), "Error: file_path '%s' should be a string but is of type '%s' instead" % (
file_path,
type(file_path),
) )
# Check file exists # Check file exists
@ -151,24 +153,30 @@ def write_to_file(file_path, data, file_mode="w"):
file_mode -- Mode used when writing the file. Option meant to be used file_mode -- Mode used when writing the file. Option meant to be used
by append_to_file to avoid duplicating the code of this function. by append_to_file to avoid duplicating the code of this function.
""" """
assert isinstance(data, basestring) or isinstance(data, list), ( assert isinstance(data, basestring) or isinstance(
"Error: data '%s' should be either a string or a list but is of type '%s'" data, list
% (data, type(data)) ), "Error: data '%s' should be either a string or a list but is of type '%s'" % (
data,
type(data),
) )
assert not os.path.isdir(file_path), ( assert not os.path.isdir(file_path), (
"Error: file_path '%s' point to a dir, it should be a file" % file_path "Error: file_path '%s' point to a dir, it should be a file" % file_path
) )
assert os.path.isdir(os.path.dirname(file_path)), ( assert os.path.isdir(
"Error: the path ('%s') base dir ('%s') is not a dir" os.path.dirname(file_path)
% (file_path, os.path.dirname(file_path)) ), "Error: the path ('%s') base dir ('%s') is not a dir" % (
file_path,
os.path.dirname(file_path),
) )
# If data is a list, check elements are strings and build a single string # If data is a list, check elements are strings and build a single string
if not isinstance(data, basestring): if not isinstance(data, basestring):
for element in data: for element in data:
assert isinstance(element, basestring), ( assert isinstance(
"Error: element '%s' should be a string but is of type '%s' instead" element, basestring
% (element, type(element)) ), "Error: element '%s' should be a string but is of type '%s' instead" % (
element,
type(element),
) )
data = "\n".join(data) data = "\n".join(data)
@ -203,20 +211,26 @@ def write_to_json(file_path, data):
""" """
# Assumptions # Assumptions
assert isinstance(file_path, basestring), ( assert isinstance(
"Error: file_path '%s' should be a string but is of type '%s' instead" file_path, basestring
% (file_path, type(file_path)) ), "Error: file_path '%s' should be a string but is of type '%s' instead" % (
file_path,
type(file_path),
) )
assert isinstance(data, dict) or isinstance(data, list), ( assert isinstance(data, dict) or isinstance(
"Error: data '%s' should be a dict or a list but is of type '%s' instead" data, list
% (data, type(data)) ), "Error: data '%s' should be a dict or a list but is of type '%s' instead" % (
data,
type(data),
) )
assert not os.path.isdir(file_path), ( assert not os.path.isdir(file_path), (
"Error: file_path '%s' point to a dir, it should be a file" % file_path "Error: file_path '%s' point to a dir, it should be a file" % file_path
) )
assert os.path.isdir(os.path.dirname(file_path)), ( assert os.path.isdir(
"Error: the path ('%s') base dir ('%s') is not a dir" os.path.dirname(file_path)
% (file_path, os.path.dirname(file_path)) ), "Error: the path ('%s') base dir ('%s') is not a dir" % (
file_path,
os.path.dirname(file_path),
) )
# Write dict to file # Write dict to file

View file

@ -127,14 +127,12 @@ else:
def identity(test_item): def identity(test_item):
"""Identity decorator """Identity decorator"""
"""
return test_item return test_item
def skip_unless_ci(reason, feature=None): def skip_unless_ci(reason, feature=None):
"""Skip test unless test case is executed on CI like Travis CI """Skip test unless test case is executed on CI like Travis CI"""
"""
if not os.environ.get("CI", False): if not os.environ.get("CI", False):
return unittest.skip(reason) return unittest.skip(reason)
elif feature in CI_DISABLED: elif feature in CI_DISABLED:
@ -201,7 +199,8 @@ def combined_logger(
fmt=" ".join((log_name, sys_log_format)) fmt=" ".join((log_name, sys_log_format))
) )
my_syslog_handler = logging.handlers.SysLogHandler( my_syslog_handler = logging.handlers.SysLogHandler(
address="/dev/log", facility=SysLogHandler.LOG_DAEMON, address="/dev/log",
facility=SysLogHandler.LOG_DAEMON,
) )
my_syslog_handler.setFormatter(my_syslog_formatter) my_syslog_handler.setFormatter(my_syslog_formatter)
new_logger.addHandler(my_syslog_handler) new_logger.addHandler(my_syslog_handler)
@ -373,7 +372,8 @@ class SlapdObject(object):
""" """
include_directives = "\n".join( include_directives = "\n".join(
'include "{schema_prefix}/{schema_file}"'.format( 'include "{schema_prefix}/{schema_file}"'.format(
schema_prefix=self._schema_prefix, schema_file=schema_file, schema_prefix=self._schema_prefix,
schema_file=schema_file,
) )
for schema_file in self.openldap_schema_files for schema_file in self.openldap_schema_files
) )
@ -563,7 +563,13 @@ class SlapdObject(object):
if ldap_uri is None: if ldap_uri is None:
ldap_uri = self.default_ldap_uri ldap_uri = self.default_ldap_uri
args = ( args = (
[ldapcommand, "-H", ldap_uri,] + self._cli_auth_args() + (extra_args or []) [
ldapcommand,
"-H",
ldap_uri,
]
+ self._cli_auth_args()
+ (extra_args or [])
) )
self._log.debug("Run command: %r", " ".join(args)) self._log.debug("Run command: %r", " ".join(args))
proc = subprocess.Popen( proc = subprocess.Popen(

View file

@ -58,9 +58,11 @@ class TestLDAP:
def test_authenticate_sasl_non_interactive_bind(self, ldap_server): def test_authenticate_sasl_non_interactive_bind(self, ldap_server):
self.ldap_conf["parameters"]["uri"] = ldap_server.uri self.ldap_conf["parameters"]["uri"] = ldap_server.uri
self.ldap_conf["parameters"]["user_rdn"] = ( self.ldap_conf["parameters"][
"gidNumber=%s+uidNumber=%s,cn=peercred,cn=external,cn=auth" "user_rdn"
% (os.getgid(), os.getuid()) ] = "gidNumber=%s+uidNumber=%s,cn=peercred,cn=external,cn=auth" % (
os.getgid(),
os.getuid(),
) )
ldap_interface = m_ldap.Authenticator(**self.ldap_conf) ldap_interface = m_ldap.Authenticator(**self.ldap_conf)