def start_server(self, port, address, *, xsrf_protection=XSRF_PROTECTION_TOKEN): file_download_feature = FileDownloadFeature( UserFileStorage(b'some_secret'), test_utils.temp_folder) config = ServerConfig() config.port = port config.address = address config.xsrf_protection = xsrf_protection config.max_request_size_mb = 1 authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider()) execution_service = MagicMock() execution_service.start_script.return_value = 3 server.init(config, None, authorizer, execution_service, MagicMock(), MagicMock(), ConfigService(authorizer, self.conf_folder), MagicMock(), FileUploadFeature(UserFileStorage(b'cookie_secret'), test_utils.temp_folder), file_download_feature, 'cookie_secret', None, self.conf_folder, start_server=False) self.start_loop()
def setUp(self): super().setUp() test_utils.setup() authorizer = Authorizer([], ['admin_user'], EmptyGroupProvider()) self.admin_user = User('admin_user', {}) self.config_service = ConfigService(authorizer, test_utils.temp_folder)
def setUp(self): test_utils.setup() self.authorizer = Authorizer([], [], ['power_user'], [], EmptyGroupProvider()) self.logging_service = ExecutionLoggingService(test_utils.temp_folder, LogNameCreator(), self.authorizer)
def assertAllowed(self, user, allowed_users, expected_allowed, groups=None): group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider() authorizer = Authorizer(allowed_users, [], [], group_provider) allowed = authorizer.is_allowed_in_app(user) if allowed != expected_allowed: self.fail('Expected ' + user + ' to be allowed=' + str(expected_allowed) + ' for ' + str(allowed_users) + ' but was ' + str(allowed))
def assert_has_access(self, user, admin_users, history_access_users, expected_allowed, groups=None): group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider() authorizer = Authorizer([], admin_users, history_access_users, group_provider) has_access = authorizer.has_full_history_access(user) if has_access != expected_allowed: self.fail('Expected ' + user + ' to has_access=' + str(expected_allowed) + ' for ' + str(history_access_users) + ' but was ' + str(has_access))
def assertAllowed(self, user, allowed_users, expected_allowed): authorizer = Authorizer(allowed_users, [], EmptyGroupProvider()) allowed = authorizer.is_allowed_in_app(user) if allowed != expected_allowed: self.fail('Expected ' + user + ' to be allowed=' + str(expected_allowed) + ' for ' + str(allowed_users) + ' but was ' + str(allowed))
def assertAdmin(self, user, admin_users, expected_allowed): authorizer = Authorizer([], admin_users, EmptyGroupProvider()) allowed = authorizer.is_admin(user) if allowed != expected_allowed: self.fail('Expected ' + user + ' to be admin=' + str(expected_allowed) + ' for ' + str(admin_users) + ' but was ' + str(allowed))
def setUp(self): super().setUp() test_utils.setup() authorizer = Authorizer([], ['admin_user'], EmptyGroupProvider()) self.admin_user = User('admin_user', {}) self.config_service = ConfigService(authorizer, test_utils.temp_folder) for suffix in 'XYZ': _create_script_config_file('conf' + suffix, name='Conf ' + suffix)
def setUp(self): test_utils.setup() executor._process_creator = _MockProcessWrapper authorizer = Authorizer([], [], [], EmptyGroupProvider()) self.logging_service = ExecutionLoggingService(test_utils.temp_folder, LogNameCreator(), authorizer) self.executor_service = ExecutionService(_IdGeneratorMock()) self.controller = ExecutionLoggingController(self.executor_service, self.logging_service) self.controller.start()
def setUp(self): super().setUp() self.socket = None application = tornado.web.Application( [(r'/scripts/([^/]*)', ScriptConfigSocket)], login_url='/login.html', cookie_secret='12345') application.auth = TornadoAuth(None) application.authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider()) application.identification = IpBasedIdentification( TrustedIpValidator(['127.0.0.1']), None) application.config_service = ConfigService(application.authorizer, test_utils.temp_folder) server = httpserver.HTTPServer(application) socket, self.port = testing.bind_unused_port() server.add_socket(socket) test_utils.setup() for dir in ['x', 'y', 'z']: for file in range(1, 4): filename = dir + str(file) + '.txt' test_utils.create_file( os.path.join('test1_files', dir, filename)) test1_files_path = os.path.join(test_utils.temp_folder, 'test1_files') test_utils.write_script_config( { 'name': 'Test script 1', 'script_path': 'ls', 'parameters': [ test_utils.create_script_param_config('text 1', required=True), test_utils.create_script_param_config( 'list 1', type='list', allowed_values=['A', 'B', 'C']), test_utils.create_script_param_config( 'file 1', type='server_file', file_dir=test1_files_path), test_utils.create_script_param_config( 'list 2', type='list', values_script='ls ' + test1_files_path + '/${file 1}') ] }, 'test_script_1')
def setUp(self) -> None: super().setUp() test_utils.setup() authorizer = Authorizer([], ['admin_user', 'admin_non_editor'], [], ['admin_user'], EmptyGroupProvider()) self.admin_user = User('admin_user', {}) self.config_service = ConfigService(authorizer, test_utils.temp_folder) for pair in [('script.py', b'123'), ('another.py', b'xyz'), ('binary 1.bin', bytes.fromhex('300000004000000a')), ('my_python', bytes.fromhex('7F454C46'))]: path = os.path.join(test_utils.temp_folder, pair[0]) file_utils.write_file(path, pair[1], byte_content=True)
def setUp(self): super().setUp() self.id_generator = _IdGeneratorMock() self.authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider()) self.exec_services = [] self.processes = {} def create_process(executor, command, working_directory, env_variables): wrapper = _MockProcessWrapper(executor, command, working_directory, env_variables) self.processes[self.get_last_id()] = wrapper return wrapper executor._process_creator = create_process
def start_server(self, port, address, *, xsrf_protection=XSRF_PROTECTION_TOKEN): file_download_feature = FileDownloadFeature( UserFileStorage(b'some_secret'), test_utils.temp_folder) config = ServerConfig() config.port = port config.address = address config.xsrf_protection = xsrf_protection config.max_request_size_mb = 1 authorizer = Authorizer(ANY_USER, ['admin_user'], [], ['admin_user'], EmptyGroupProvider()) execution_service = MagicMock() execution_service.start_script.return_value = 3 cookie_secret = b'cookie_secret' server.init(config, MockAuthenticator(), authorizer, execution_service, MagicMock(), MagicMock(), ConfigService(authorizer, self.conf_folder), MagicMock(), FileUploadFeature(UserFileStorage(cookie_secret), test_utils.temp_folder), file_download_feature, 'cookie_secret', None, self.conf_folder, start_server=False) self.start_loop() self._user_session = requests.Session() self._user_session.cookies['username'] = create_signed_value(cookie_secret, 'username', 'normal_user') \ .decode('utf8') self._admin_session = requests.Session() self._admin_session.cookies['username'] = create_signed_value(cookie_secret, 'username', 'admin_user') \ .decode('utf8')
def setUp(self) -> None: super().setUp() def create_process(executor, command, working_directory, env_variables): return _MockProcessWrapper(executor, command, working_directory, env_variables) executor._process_creator = create_process authorizer = Authorizer([ANY_USER], ['admin_user'], ['history_user'], [], EmptyGroupProvider()) self.executor_service = ExecutionService(authorizer, _IdGeneratorMock()) self.execution_id = _start(self.executor_service, self.owner_user.user_id) self.script_cleaned = False
def start_server(self, port, address): file_download_feature = FileDownloadFeature( UserFileStorage(b'some_secret'), test_utils.temp_folder) config = ServerConfig() config.port = port config.address = address authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider()) server.init(config, None, authorizer, None, None, ConfigService(authorizer, self.conf_folder), None, None, file_download_feature, 'cookie_secret', None, start_server=False) self.start_loop()