Exemplo n.º 1
0
def configure_logging(sdc_home: str) -> None:
    """
    All logging related settings are set up by this function.
    """
    safe_mkdir(sdc_home, 'logs')
    log_file = os.path.join(sdc_home, 'logs', 'client.log')

    # set logging format
    log_fmt = ('%(asctime)s - %(name)s:%(lineno)d(%(funcName)s) '
               '%(levelname)s: %(message)s')
    formatter = logging.Formatter(log_fmt)
    # define log handlers such as for rotating log files
    handler = TimedRotatingFileHandler(log_file,
                                       when='midnight',
                                       backupCount=5,
                                       delay=0,
                                       encoding=ENCODING)
    handler.setFormatter(formatter)
    handler.setLevel(logging.DEBUG)
    # set up primary log
    log = logging.getLogger()
    log.setLevel(logging.DEBUG)
    log.addHandler(handler)
    # override excepthook to capture a log of catastrophic failures.
    sys.excepthook = excepthook
Exemplo n.º 2
0
def test_safe_makedirs_non_absolute(safe_tmpdir):
    home_dir = str(safe_tmpdir)

    with pytest.raises(ValueError) as e_info:
        safe_mkdir(home_dir, '..')

    assert 'not absolute' in str(e_info.value)
Exemplo n.º 3
0
    def __init__(self, sdc_home: str, session_maker: scoped_session,
                 is_qubes: bool) -> None:
        '''
        :param sdc_home: Home directory for the SecureDrop client
        :param is_qubes: Whether the client is running in Qubes or not
        '''
        safe_mkdir(os.path.join(sdc_home), "gpg")
        self.sdc_home = sdc_home
        self.is_qubes = is_qubes
        self.session_maker = session_maker

        config = Config.from_home_dir(self.sdc_home)
        self.journalist_key_fingerprint = config.journalist_key_fingerprint
Exemplo n.º 4
0
def configure_logging(sdc_home: str) -> None:
    """
    All logging related settings are set up by this function.
    """
    safe_mkdir(sdc_home, 'logs')
    log_file = os.path.join(sdc_home, 'logs', 'client.log')

    # set logging format
    log_fmt = ('%(asctime)s - %(name)s:%(lineno)d(%(funcName)s) '
               '%(levelname)s: %(message)s')
    formatter = logging.Formatter(log_fmt)

    # define log handlers such as for rotating log files
    handler = TimedRotatingFileHandler(log_file,
                                       when='midnight',
                                       backupCount=5,
                                       delay=False,
                                       encoding=ENCODING)
    handler.setFormatter(formatter)

    # For rsyslog handler
    if platform.system() != "Linux":  # pragma: no cover
        syslog_file = "/var/run/syslog"
    else:
        syslog_file = "/dev/log"

    sysloghandler = SysLogHandler(address=syslog_file)
    sysloghandler.setFormatter(formatter)

    # set up primary log
    log = logging.getLogger()
    log.setLevel(LOGLEVEL)
    log.addHandler(handler)

    # add the secondard logger
    log.addHandler(sysloghandler)

    # override excepthook to capture a log of catastrophic failures.
    sys.excepthook = excepthook
Exemplo n.º 5
0
def get_test_context(sdc_home):
    """
    Returns a tuple containing a Window instance and a Controller instance that
    have been correctly set up and isolated from any other instances of the
    application to be run in the test suite.
    """
    # The application's window.
    gui = Window()
    # Create all app assets in a new temp directory and sub-directories.
    safe_mkdir(os.path.join(sdc_home.name, "gpg"))
    safe_mkdir(os.path.join(sdc_home.name, "data"))
    # Configure test keys.
    create_gpg_test_context(sdc_home)
    # Configure and create the database.
    session_maker = make_session_maker(sdc_home.name)
    create_dev_data(sdc_home.name)
    # Create the controller.
    controller = Controller(HOSTNAME, gui, session_maker, sdc_home.name, False,
                            False)
    # Link the gui and controller together.
    gui.controller = controller
    # Et Voila...
    return (gui, controller)
Exemplo n.º 6
0
def init(sdc_home: str) -> None:
    safe_mkdir(sdc_home)
    safe_mkdir(sdc_home, 'data')
Exemplo n.º 7
0
def init(sdc_home: str) -> None:
    safe_mkdir(sdc_home)
Exemplo n.º 8
0
def test_safe_makedirs_non_absolute(homedir):
    with pytest.raises(ValueError) as e_info:
        safe_mkdir(homedir, "..")

    assert "not absolute" in str(e_info.value)