summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2020-04-21 20:46:03 +0300
committerIvan Kanakarakis <ivan.kanak@gmail.com>2020-05-12 13:43:30 +0300
commit832d26f26b4e7d0eb91689a5214119ccc610193f (patch)
tree2ae0d6b81c86d54fbd447a0a6e6a0b81bcac1e12
parent24d248cf29597264ec9db0b118946395c399c650 (diff)
downloadpysaml2-832d26f26b4e7d0eb91689a5214119ccc610193f.tar.gz
Remove logger configuration
``` ************* Module saml2.config src/saml2/config.py:464:23: E1135: Value '_logconf' doesn't support membership test (unsupported-membership-test) src/saml2/config.py:466:27: E1136: Value '_logconf' is unsubscriptable (unsubscriptable-object) src/saml2/config.py:481:50: E1136: Value '_logconf' is unsubscriptable (unsubscriptable-object) src/saml2/config.py:486:22: E1120: No value for argument 'filename' in constructor call (no-value-for-parameter) src/saml2/config.py:488:23: E1135: Value '_logconf' doesn't support membership test (unsupported-membership-test) src/saml2/config.py:489:42: E1136: Value '_logconf' is unsubscriptable (unsubscriptable-object) src/saml2/config.py:505:43: E1136: Value '_logconf' is unsubscriptable (unsubscriptable-object) src/saml2/config.py:552:19: E1136: Value 'self.virtual_organization' is unsubscriptable (unsubscriptable-object) ``` this seems right; the operations upon the Logger object do not make sense. There is no need to "fix" this, we just remove the relevant code. We should come back to this and refactor how the logger is configured for the library. Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
-rw-r--r--src/saml2/__init__.py3
-rw-r--r--src/saml2/config.py69
-rw-r--r--src/saml2/entity.py1
-rw-r--r--tests/test_31_config.py49
4 files changed, 9 insertions, 113 deletions
diff --git a/src/saml2/__init__.py b/src/saml2/__init__.py
index ab0f1bf5..5fa769f9 100644
--- a/src/saml2/__init__.py
+++ b/src/saml2/__init__.py
@@ -40,8 +40,7 @@ except ImportError:
import defusedxml.ElementTree
-root_logger = logging.getLogger(__name__)
-root_logger.level = logging.NOTSET
+logger = logging.getLogger(__name__)
NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:assertion'
# TEMPLATE = '{urn:oasis:names:tc:SAML:2.0:assertion}%s'
diff --git a/src/saml2/config.py b/src/saml2/config.py
index 274e3960..1bd2827a 100644
--- a/src/saml2/config.py
+++ b/src/saml2/config.py
@@ -10,11 +10,12 @@ import sys
import six
-from saml2 import root_logger, BINDING_URI, SAMLError
-from saml2 import BINDING_SOAP
-from saml2 import BINDING_HTTP_REDIRECT
-from saml2 import BINDING_HTTP_POST
from saml2 import BINDING_HTTP_ARTIFACT
+from saml2 import BINDING_HTTP_POST
+from saml2 import BINDING_HTTP_REDIRECT
+from saml2 import BINDING_SOAP
+from saml2 import BINDING_URI
+from saml2 import SAMLError
from saml2.attribute_converter import ac_factory
from saml2.assertion import Policy
@@ -22,6 +23,7 @@ from saml2.mdstore import MetadataStore
from saml2.saml import NAME_FORMAT_URI
from saml2.virtual_org import VirtualOrg
+
logger = logging.getLogger(__name__)
__author__ = 'rolandh'
@@ -47,7 +49,6 @@ COMMON_ARGS = [
"contact_person",
"name_form",
"virtual_organization",
- "logger",
"only_use_keys_in_metadata",
"disable_ssl_certificate_validation",
"preferred_binding",
@@ -211,7 +212,6 @@ class Config(object):
self.name_id_format = None
self.name_id_format_allow_create = None
self.virtual_organization = None
- self.logger = None
self.only_use_keys_in_metadata = True
self.logout_requests_signed = None
self.disable_ssl_certificate_validation = None
@@ -453,63 +453,6 @@ class Config(object):
else:
return unspec
- def log_handler(self):
- try:
- _logconf = self.logger
- except KeyError:
- return None
-
- handler = None
- for htyp in LOG_HANDLER:
- if htyp in _logconf:
- if htyp == "syslog":
- args = _logconf[htyp]
- if "socktype" in args:
- import socket
- if args["socktype"] == "dgram":
- args["socktype"] = socket.SOCK_DGRAM
- elif args["socktype"] == "stream":
- args["socktype"] = socket.SOCK_STREAM
- else:
- raise ConfigurationError("Unknown socktype!")
- try:
- handler = LOG_HANDLER[htyp](**args)
- except TypeError: # difference between 2.6 and 2.7
- del args["socktype"]
- handler = LOG_HANDLER[htyp](**args)
- else:
- handler = LOG_HANDLER[htyp](**_logconf[htyp])
- break
-
- if handler is None:
- # default if rotating logger
- handler = LOG_HANDLER["rotating"]()
-
- if "format" in _logconf:
- formatter = logging.Formatter(_logconf["format"])
- else:
- formatter = logging.Formatter(LOG_FORMAT)
-
- handler.setFormatter(formatter)
- return handler
-
- def setup_logger(self):
- if root_logger.level != logging.NOTSET: # Someone got there before me
- return root_logger
-
- _logconf = self.logger
- if _logconf is None:
- return root_logger
-
- try:
- root_logger.setLevel(LOG_LEVEL[_logconf["loglevel"].lower()])
- except KeyError: # reasonable default
- root_logger.setLevel(logging.INFO)
-
- root_logger.addHandler(self.log_handler())
- root_logger.info("Logging started")
- return root_logger
-
def endpoint2service(self, endpoint, context=None):
endps = self.getattr("endpoints", context)
diff --git a/src/saml2/entity.py b/src/saml2/entity.py
index 2ab1995b..b7fe5c30 100644
--- a/src/saml2/entity.py
+++ b/src/saml2/entity.py
@@ -159,7 +159,6 @@ class Entity(HTTPBase):
vo.sp = self
self.metadata = self.config.metadata
- self.config.setup_logger()
self.debug = self.config.debug
self.sec = security_context(self.config)
diff --git a/tests/test_31_config.py b/tests/test_31_config.py
index 407e46e2..bb19d85c 100644
--- a/tests/test_31_config.py
+++ b/tests/test_31_config.py
@@ -8,7 +8,7 @@ from saml2.mdstore import MetadataStore, name
from saml2 import BINDING_HTTP_REDIRECT, BINDING_SOAP, BINDING_HTTP_POST
from saml2.config import SPConfig, IdPConfig, Config
-from saml2 import root_logger
+from saml2 import logger
from pathutils import dotname, full_path
from saml2.sigver import security_context, CryptoBackendXMLSecurity
@@ -297,57 +297,12 @@ def test_wayf():
assert name(ent) == 'Example Co.'
assert name(ent, "se") == 'Exempel AB'
- c.setup_logger()
-
- assert root_logger.level != logging.NOTSET
- assert root_logger.level == logging.INFO
- assert len(root_logger.handlers) == 1
- assert isinstance(root_logger.handlers[0],
- logging.handlers.RotatingFileHandler)
- handler = root_logger.handlers[0]
- assert handler.backupCount == 5
- try:
- assert handler.maxBytes == 100000
- except AssertionError:
- assert handler.maxBytes == 500000
- assert handler.mode == "a"
- assert root_logger.name == "saml2"
- assert root_logger.level == 20
-
def test_conf_syslog():
c = SPConfig().load_file("server_conf_syslog")
c.context = "sp"
- # otherwise the logger setting is not changed
- root_logger.level = logging.NOTSET
- while root_logger.handlers:
- handler = root_logger.handlers[-1]
- root_logger.removeHandler(handler)
- handler.flush()
- handler.close()
-
- print(c.logger)
- c.setup_logger()
-
- assert root_logger.level != logging.NOTSET
- assert root_logger.level == logging.INFO
- assert len(root_logger.handlers) == 1
- assert isinstance(root_logger.handlers[0],
- logging.handlers.SysLogHandler)
- handler = root_logger.handlers[0]
- print(handler.__dict__)
- assert handler.facility == "local3"
- assert handler.address == ('localhost', 514)
- if ((sys.version_info.major == 2 and sys.version_info.minor >= 7) or
- sys.version_info.major > 2):
- assert handler.socktype == 2
- else:
- pass
- assert root_logger.name == "saml2"
- assert root_logger.level == 20
-
-#noinspection PyUnresolvedReferences
+
def test_3():
cnf = Config()
cnf.load_file(dotname("sp_1_conf"))