Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
:return boolean
"""
status_code = 0
init_time = time.time()
self.driver_wrapper.logger.info('Downloading file from Selenoid node: %s' % url)
# retries policy
while status_code != STATUS_OK and time.time() - init_time < float(timeout):
body = requests.get(url)
status_code = body.status_code
if status_code != STATUS_OK:
time.sleep(1)
took = time.time() - init_time # time used to download the file
# create the folders and store the file downloaded
if status_code == STATUS_OK:
path, name = os.path.split(path_file)
makedirs_safe(path)
try:
fp = open(path_file, 'wb')
fp.write(body.content)
fp.close()
self.driver_wrapper.logger.info('File has been downloaded successfully to "%s" and took %d '
'seconds' % (path_file, took))
return True
except IOError as e:
self.driver_wrapper.logger.warn('Error writing downloaded file in "%s":\n %s' % (path_file, e))
else:
self.driver_wrapper.logger.warn('File "%s" does not exist in the server after %s seconds' % (url, timeout))
return False
:param tc_config_files: test case specific config files
"""
if cls.config_directory is None:
# Get config directory from properties
config_directory = cls.get_configured_value('Config_directory', tc_config_files.config_directory, 'conf')
prop_filenames = cls.get_configured_value('Config_prop_filenames',
tc_config_files.config_properties_filenames, 'properties.cfg')
cls.config_directory = cls._find_parent_directory(config_directory, prop_filenames.split(';')[0])
# Get output directory from properties and create it
cls.output_directory = cls.get_configured_value('Output_directory', tc_config_files.output_directory,
'output')
if not os.path.isabs(cls.output_directory):
# If output directory is relative, we use the same path as config directory
cls.output_directory = os.path.join(os.path.dirname(cls.config_directory), cls.output_directory)
makedirs_safe(cls.output_directory)
# Get visual baseline directory from properties
default_baseline = os.path.join(cls.output_directory, 'visualtests', 'baseline')
cls.visual_baseline_directory = cls.get_configured_value('Visual_baseline_directory',
tc_config_files.visual_baseline_directory,
default_baseline)
if not os.path.isabs(cls.visual_baseline_directory):
# If baseline directory is relative, we use the same path as config directory
cls.visual_baseline_directory = os.path.join(os.path.dirname(cls.config_directory),
cls.visual_baseline_directory)
def capture_screenshot(self, name):
"""Capture screenshot and save it in screenshots folder
:param name: screenshot name suffix
:returns: screenshot path
"""
from toolium.driver_wrappers_pool import DriverWrappersPool
filename = '{0:0=2d}_{1}'.format(DriverWrappersPool.screenshots_number, name)
filename = '{}.png'.format(get_valid_filename(filename))
filepath = os.path.join(DriverWrappersPool.screenshots_directory, filename)
makedirs_safe(DriverWrappersPool.screenshots_directory)
if self.driver_wrapper.driver.get_screenshot_as_file(filepath):
self.logger.info('Screenshot saved in %s', filepath)
DriverWrappersPool.screenshots_number += 1
return filepath
return None