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
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)
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
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
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)
def init(sdc_home: str) -> None: safe_mkdir(sdc_home) safe_mkdir(sdc_home, 'data')
def init(sdc_home: str) -> None: safe_mkdir(sdc_home)
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)