async def browser_setup_for_aws_execution(self): self.aws_download_headless_chrome_from_s3() os.environ[ 'PYPPETEER_HOME'] = '/tmp' # tell pyppeteer to use this read-write path in Lambda aws self.chrome_args.args_set_user_data_dir(temp_folder( )) # set userdata to folder inside /tmp (since that is writable) return await self.browser_launch_or_connect()
async def test_args_set_user_data_dir__enable_logging(self): user_data = temp_folder() chrome = Chrome().headless(True) (chrome.chrome_args.args_set_user_data_dir(user_data).enable_logging()) await chrome.browser() log_file = path_combine(user_data, 'Default/chrome_debug.log') assert file_exists(log_file)
def setUpClass(cls) -> None: cls.test_file = temp_file( contents='Static text so that we have a static hash') cls.file_hash = '500286533bf75d769e9180a19414d1c3502dd52093e7351a0a9b1385d8f8961c' cls.temp_dir = temp_folder() file_copy(cls.test_file, cls.temp_dir) cls.pre_processor = Pre_Processor() Setup_Testing().configure_pre_processor(cls.pre_processor)
def setUp(self) -> None: self.sdk_server = self.config.test_sdk self.sdk_port = '8080' self.temp_folder = temp_folder() self.events_log = Events_Log(self.temp_folder) self.events_elastic = Events_Log_Elastic() self.report_elastic = Report_Elastic() self.analysis_elastic = Analysis_Elastic() self.file_processing = File_Processing(events_log=self.events_log, events_elastic = self.events_elastic, report_elastic=self.report_elastic, analysis_elastic= self.analysis_elastic, meta_service=self.meta_service ) self.storage = Storage()
def __init__(self, page, capture_screenshots=False, max_attempts=20, wait_for=0.5): self.page = page self.capture_screenshots = capture_screenshots self.target_folder = temp_folder() self.downloaded_file = None self.target_url = None self.screenshots = [] self.status = False self.max_attempts = max_attempts self.wait_for = wait_for self.wait_count = 0 self.waited_for = 0
def create_from_pip(self, package_name, pip_executable='pip3'): path_install = temp_folder() install_result = run_process( pip_executable, ['install', '-t', path_install, package_name]) if install_result.get('error') is None and install_result.get( 'stderr').startswith('ERROR') is False: return self.create_from_folder(path_install) else: return { 'status': 'error', 'error': install_result.get('stderr'), 'stdout': install_result.get('stdout') }
def test_folder_copy(self): folder_a = temp_folder(prefix='folder_a_') folder_b = temp_folder(prefix='folder_b_', parent_folder=folder_a) folder_c = temp_folder(prefix='folder_c_', parent_folder=folder_a) file_a = temp_file(parent_folder=folder_a, contents='abc') file_b = temp_file(parent_folder=folder_b, contents='abc') file_c = temp_file(parent_folder=folder_c, contents='abc') target_a = path_combine(folder_a, 'target_a') assert parent_folder(target_a) == folder_a assert parent_folder_combine(target_a, 'target_a') == target_a assert folder_copy(source=folder_a, destination=target_a) == target_a assert (len(folder_files(target_a)) == 3) assert folder_files(target_a) == sorted([ path_append(target_a, remove(file_a, folder_a + '/')), path_append(target_a, remove(file_b, folder_a + '/')), path_append(target_a, remove(file_c, folder_a + '/')) ]) # test with ignore_pattern target_b = path_combine(folder_a, 'target_b') assert folder_copy(source=target_a, destination=target_b, ignore_pattern='folder_b_*') == target_b assert (len(folder_files(target_b)) == 2) zipped_files = zip_files(target_a) assert zip_file_list(zipped_files) == sorted([ remove(file_a, folder_a + '/'), remove(file_b, folder_a + '/'), remove(file_c, folder_a + '/') ]) path_pattern = f'{folder_a}/**/*.*' assert len(file_find(path_pattern)) == 8
def key_pair_create_to_file(self, key_name, target_folder=None, tags=None): key_pair = self.key_pair_create(key_name=key_name, tags=tags) key_pair_id = key_pair.get('KeyPairId') key_pair_material = key_pair.get('KeyMaterial') if target_folder is None: target_folder = temp_folder() path_key_pair = path_combine(target_folder, key_name + ".pem") file_create(path_key_pair, key_pair_material) chmod(path_key_pair, 0o400) return { 'path_key_pair': path_key_pair, 'key_pair_id': key_pair_id, 'key_pair': key_pair }
def set_root_folder(self, root_folder=None): if folder_not_exists( root_folder ): # use temp folder if no value is provided or folder doesn't exist root_folder = temp_folder() self.root_folder = root_folder self.hd1_location = path_combine( root_folder, DEFAULT_HD1_NAME) # set default values for h1, h2 and hd3 self.hd2_location = path_combine(root_folder, DEFAULT_HD2_NAME) self.hd3_location = path_combine(root_folder, DEFAULT_HD3_NAME) self.set_hd1_location(self.hd1_location) # make sure folders exist self.set_hd2_location(self.hd2_location) self.set_hd3_location(self.hd3_location) return self
def prepare_zip(self, path, zip_name): try: self.temp_folder = temp_folder() dst_path = os.path.join(self.temp_folder, ntpath.basename(path)) if os.path.isfile(path): file_copy(path, dst_path) elif os.path.isdir(path): folder_copy(path, dst_path) target_file_path = os.path.join(self.zip_folder, zip_name) zip_files(self.temp_folder, file_pattern='*.*', target_file = target_file_path) folder_delete_all(self.temp_folder) return target_file_path except Exception as error: logger.error(f"File_Distributor: prepare_zip : {error}") raise error
def prepare_hd2_hash_folder_zip(self,path_list, zip_name): try: self.temp_folder = temp_folder() for hash_folder_path in path_list: name = ntpath.basename(hash_folder_path) dst_path = os.path.join(self.temp_folder, name) if os.path.isdir(hash_folder_path): folder_copy(hash_folder_path, dst_path) hd2_source_file = os.path.join(dst_path, "source") if os.path.isfile(hd2_source_file): file_delete(hd2_source_file) target_file_path = os.path.join(self.zip_folder, zip_name) zip_files(self.temp_folder, file_pattern='*.*', target_file = target_file_path) folder_delete_all(self.temp_folder) return target_file_path except Exception as error: logger.error(f"File_Distributor: prepare_zip : {error}") raise error
def set_config_to_temp_folder(self): self.temp_root_folder = temp_folder() self.get_config().set_root_folder(root_folder=self.temp_root_folder)
async def test_user_data_dir(self): user_data_dir = temp_folder() self.chrome.chrome_args.args_set_user_data_dir(user_data_dir) await self.chrome.browser() assert self.chrome.chrome_setup.user_data_dir() == user_data_dir
def setUpClass(cls) -> None: cls.new_folder = temp_folder()