def test_remove_older_with_unicode(self): """ Test if exception is raised when calling _remove_oler with a keepdays as unicode value. """ # Get current user user = self.app.userdb.get_user(self.USERNAME) repo = user.get_repo(self.REPO) # Run the job. with self.assertRaises(AssertionError): RemoveOlder(cherrypy.engine, self.app)._remove_older(user, repo, '30')
def test_job_run_without_keepdays(self): """ Test execution of job run. """ # Mock the call to _remove_older to make verification. p = RemoveOlder(cherrypy.engine, self.app) p._remove_older = MagicMock() # Call the job. p.job_run() # Check if _remove_older was called p._remove_older.assert_not_called()
def test_remove_older(self): """ Run remove older on testcases repository. """ self._remove_older(self.REPO, '1') self.assertStatus(200) # Get current user user = self.app.userdb.get_user(self.USERNAME) repo = user.get_repo(self.REPO) # Run the job. p = RemoveOlder(cherrypy.engine, self.app) p._remove_older(user, repo, 30) # Check number of history. r = librdiff.RdiffRepo(user.user_root, repo.name) self.assertEqual(2, len(r.get_history_entries()))
def test_job_run_with_keepdays(self): """ Test execution of job run. """ # Mock the call to _remove_older to make verification. p = RemoveOlder(cherrypy.engine, self.app) p._remove_older = MagicMock() # Set a keepdays user = self.app.userdb.get_user(self.USERNAME) repo = user.get_repo(self.REPO) repo.keepdays = 30 # Call the job. p.job_run() # Check if _remove_older was called p._remove_older.assert_called_once_with(user, repo, 30)
def test_remove_older(self): """ Run remove older on testcases repository. """ self._remove_older('admin', 'testcases', '1') self.assertStatus(200) # Get current user user = self.app.store.get_user(self.USERNAME) repo = user.get_repo(self.REPO) repo.keepdays = 30 # Run the job. p = RemoveOlder(cherrypy.engine, self.app) p._remove_older(repo) # Check number of history. repo = user.get_repo(self.REPO) self.assertEqual(2, len(repo.get_history_entries()))
def start(): """Start rdiffweb deamon.""" # Parse command line options args = {} opts = getopt.getopt(sys.argv[1:], 'vdrf:', [ 'debug', 'log-file=', 'log-access-file=', 'config=', ])[0] for option, value in opts: if option in ['-d', '--debug']: args['debug'] = True elif option in ['--log-file']: args['log_file'] = value elif option in ['--log-access-file']: args['log_access_file'] = value elif option in ['-f', '--config']: args['config'] = value # Open config file before opening the apps. configfile = args.get('config', '/etc/rdiffweb/rdw.conf') cfg = read_config(configfile) log_file = args.get('log_file', None) or cfg.get('logfile', False) log_access_file = args.get('log_access_file', None) or cfg.get( 'logaccessfile', None) if args.get('debug', False): environment = 'development' log_level = "DEBUG" else: environment = cfg.get('environment', 'production') log_level = cfg.get('loglevel', 'INFO') # Configure logging setup_logging(log_file=log_file, log_access_file=log_access_file, level=log_level) # Create App. app = rdw_app.RdiffwebApp(cfg) # Get configuration serverHost = nativestr(cfg.get("serverhost", "127.0.0.1")) serverPort = int(cfg.get("serverport", "8080")) # Get SSL configuration (if any) sslCertificate = cfg.get("sslcertificate") sslPrivateKey = cfg.get("sslprivatekey") global_config = cherrypy._cpconfig.environments.get(environment, {}) global_config.update({ 'server.socket_host': serverHost, 'server.socket_port': serverPort, 'server.log_file': log_file, 'server.ssl_certificate': sslCertificate, 'server.ssl_private_key': sslPrivateKey, # Set maximum POST size to 2MiB, for security. 'server.max_request_body_size': 2097152, 'server.environment': environment, }) cherrypy.config.update(global_config) # Add a custom signal handler cherrypy.engine.signal_handler.handlers['SIGUSR2'] = debug_dump_mem cherrypy.engine.signal_handler.handlers['SIGABRT'] = debug_dump_thread # Start deamons RemoveOlder(cherrypy.engine, app).subscribe() NotificationPlugin(cherrypy.engine, app).subscribe() # Start web server cherrypy.quickstart(app) # Log startup logger.info("STOP")