def test_generate_execution_report(self, project_class, test_utils): _, project = project_class.activate() execution = test_utils.execute_random_suite(project) os.remove(execution['report_path']) elapsed_time = 1122 browsers = define_browsers(['chrome'], [], ['chrome']) processes = 2 envs = ['test', 'staging'] tags = ['foo', 'bar'] remote_url = 'https://foo.bar' reprt = generate_execution_report(execution['exec_dir'], elapsed_time, browsers, processes, envs, tags, remote_url) expected_params = { 'browsers': [{ 'name': 'chrome', 'full_name': None, 'remote': False, 'capabilities': {} }], 'processes': 2, 'environments': ['test', 'staging'], 'tags': ['foo', 'bar'], 'remote_url': '' } assert reprt['params'] == expected_params assert os.path.isfile(execution['report_path'])
def test_define_browsers_drivers_empty(self): """Verify that _define_browsers returns correct value when selected drivers is empty """ drivers = [] expected = [] drivers_defined = exc_runner.define_browsers(drivers, self.remote_browsers, self.default_browsers) assert drivers_defined == expected
def test_define_browsers_driver_is_not_defined(self): """Verify that _define_browsers raises the correct exception when a driver name that is not defined is passed """ drivers = ['not_defined'] expected_msg = ['Error: the browser {} is not defined\n'.format('not_defined'), 'available options are:\n', '\n'.join(self.default_browsers), '\n'.join(list(self.remote_browsers.keys()))] expected_msg = ''.join(expected_msg) with pytest.raises(Exception) as excinfo: _ = exc_runner.define_browsers(drivers, self.remote_browsers, self.default_browsers) assert str(excinfo.value) == expected_msg
def test_define_browsers_browser_order_of_preference(self): """Verify that _define_browsers selects the drivers in the correct order of precedence, first remote drivers then predefined drivers""" remote_drivers = { 'chromex': { 'browserName': 'chrome', 'version': '60.0', 'platform': 'macOS 10.12' } } default_drivers = ['chromex'] drivers = ['chromex'] drivers_defined = exc_runner.define_browsers(drivers, remote_drivers, default_drivers) assert len(drivers_defined) == 1 assert drivers_defined[0]['remote'] == True assert drivers_defined[0]['capabilities']['version'] == '60.0'
def test_driver_path_is_not_defined(self): execution.settings = settings_manager.assign_settings_default_values( {}) execution.logger = execution_logger.get_logger() default_browsers = gui_utils.get_supported_browsers_suggestions() drivers = [ ('chromedriver_path', 'chrome'), ('chromedriver_path', 'chrome-headless'), ('edgedriver_path', 'edge'), ('geckodriver_path', 'firefox'), ('iedriver_path', 'ie'), ('operadriver_path', 'opera'), ] for setting_path, browser_name in drivers: execution.browser_definition = execution_runner.define_browsers( [browser_name], [], default_browsers)[0] with pytest.raises(Exception) as excinfo: browser.open_browser() expected = 'Exception: {} setting is not defined'.format( setting_path) assert expected in str(excinfo.value)
def test_define_browsers(self): """Verify that _define_browsers returns the correct values""" browsers = ['chrome', 'chrome_60_mac'] expected = [{ 'name': 'chrome', 'full_name': None, 'remote': False, 'capabilities': {} }, { 'name': 'chrome', 'full_name': 'chrome_60_mac', 'remote': True, 'capabilities': { 'browserName': 'chrome', 'version': '60.0', 'platform': 'macOS 10.12' } }] drivers_defined = exc_runner.define_browsers(browsers, self.remote_browsers, self.default_browsers) assert drivers_defined == expected
def test_executable_not_present(self): execution.settings = settings_manager.assign_settings_default_values( {}) execution.logger = execution_logger.get_logger() default_browsers = gui_utils.get_supported_browsers_suggestions() drivers = [ ('chromedriver_path', './drivers/chromedriver*', 'chrome'), ('chromedriver_path', './drivers/chromedriver*', 'chrome-headless'), ('edgedriver_path', './drivers/edgedriver*', 'edge'), ('geckodriver_path', './drivers/geckodriver*', 'firefox'), ('iedriver_path', './drivers/iedriver*', 'ie'), ('operadriver_path', './drivers/operadriver*', 'opera'), ] for setting_key, setting_path, browser_name in drivers: execution.browser_definition = execution_runner.define_browsers( [browser_name], [], default_browsers)[0] execution.settings[setting_key] = setting_path with pytest.raises(Exception) as excinfo: browser.open_browser() expected = 'No executable file found using path {}'.format( setting_path) assert expected in str(excinfo.value)
def _define_browsers_mock(selected_browsers): default_browsers = gui_utils.get_supported_browsers_suggestions() return define_browsers(selected_browsers, [], default_browsers)