コード例 #1
0
    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)
コード例 #2
0
ファイル: test_logger.py プロジェクト: TUBOSS/zorg
    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)
コード例 #3
0
# 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__))
コード例 #4
0
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):
コード例 #5
0
ファイル: result.py プロジェクト: quangvd3/zorg
# 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__))
コード例 #6
0
ファイル: security.py プロジェクト: quangvd3/zorg
# 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: