def test_logger(self): # type: () -> () # This test assumes the initial, intended semantics of the various # loggers returned. If semantics change, so must the tests. init_level = L._root.level test_level = 7 log_name = "TestLoggerLogger" log = L.get_logger(log_name) with self.subTest(method=L.get_logger): self.assertEqual(log.__class__, logging.Logger) self.assertEqual(log_name, log.name) # Returned loggers should default to 0 (inherit parent level) self.assertEqual(0, log.level) with self.subTest(method=L.set_level): # Assert set_level() sets root level, not sublogger level L.set_level(test_level) self.assertEqual(test_level, L._root.level) self.assertEqual(0, log.level) # Restore and verify L.set_level(init_level) self.assertEqual(init_level, L._root.level) self.assertEqual(0, log.level)
# COPYRIGHT LINE: FIXME """ dbsign.result result classes for debugsign """ from __future__ import print_function import dbsign.logger as logger log = logger.get_logger(__name__) # # Result class # class Result(object): def __init__(self, value): # type: () -> () self._checked = False self._value = value def __del__(self): # type: () -> () assert self._checked def __nonzero__(self): # type: () -> bool raise NotImplementedError("{} does not support boolean evaluation". format(self.__class__.__name__))
try: import unittest2 as unittest except ImportError: import unittest import logging import mock import os import sys import dbsign.logger as L from dbsign.result import Failure, Success import dbsign.shell as sh import dbsign.security as S log = L.get_logger(__name__) @unittest.skipUnless(sys.platform == 'darwin', "The authorizationdb is used only by macOS systems.") class TestAuthDB(unittest.TestCase): def setUp(self): # Use system.privilege.taskport.debug since it can # be restored using the DevToolsSecurity tool self.invalid_priv = "foo.bar.baz" self.test_priv = "system.privilege.taskport.debug" # stash for later self.orig_unsafe_flag = os.getenv(S.UNSAFE_FLAG, None) def tearDown(self):
# COPYRIGHT LINE: FIXME """ dbsign.result result classes for debugsign """ from __future__ import print_function import dbsign.logger as logger log = logger.get_logger(__name__) # # Result class # class Result(object): def __init__(self, value): # type: () -> () self._checked = False self._value = value def __del__(self): # type: () -> () assert self._checked def __nonzero__(self): # type: () -> bool raise NotImplementedError( "{} does not support boolean evaluation".format( self.__class__.__name__))
# COPYRIGHT LINE: FIXME """ dbsign.security """ import os import plistlib import re import tempfile import dbsign.logger as L from dbsign.result import Failure, Success from dbsign.shell import run, sudo_run log = L.get_logger(__name__) UNSAFE_FLAG = "DEBUGSIGN_UNSAFE" # # Helper functions # def derive_keychain_extension(): # type: () -> str log.debug("Determining keychain file extension") ext = "keychain-db" # used by macOS 10.12+ log.debug("Starting with default extension: '%s'", ext) sw_vers = run('sw_vers -productVersion'.split()) if sw_vers: