Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
 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'] is True
     assert drivers_defined[0]['capabilities']['version'] == '60.0'
Exemple #4
0
def interactive(settings, cli_browsers):
    """Starts the Golem interactive shell."""
    browsers = utils.choose_browser_by_precedence(
        cli_browsers=cli_browsers,
        suite_browsers=[],
        settings_default_browser=settings['default_browser'])
    execution.browser_name = browsers[0]
    remote_browsers = settings_manager.get_remote_browsers(session.settings)
    default_browsers = gui_utils.get_supported_browsers_suggestions()
    browser_defs = define_browsers(browsers, remote_browsers, default_browsers)
    execution.browser_definition = browser_defs[0]
    execution.settings = settings
    execution.settings['interactive'] = True
    execution.logger = test_logger.get_logger(
        cli_log_level=execution.settings['cli_log_level'],
        log_all_events=execution.settings['log_all_events'])
    actions.interactive_mode()
Exemple #5
0
 def test_define_browsers(self):
     """Verify that _define_browsers returns the correct values"""
     browsers = ['chrome', 'chrome_60_mac']
     expected = [{
         'name': 'chrome',
         'capabilities': {}
     }, {
         'name': 'chrome_60_mac',
         'capabilities': {
             'browserName': 'chrome',
             'version': '60.0',
             'platform': 'macOS 10.12'
         }
     }]
     drivers_defined = exc_runner.define_browsers(browsers,
                                                  self.remote_browsers,
                                                  self.default_browsers,
                                                  self.custom_browsers)
     assert drivers_defined == expected
Exemple #6
0
 def test_driver_path_is_not_defined(self):
     execution.settings = settings_manager.assign_settings_default_values(
         {})
     execution.logger = test_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_path} setting is not defined'
             assert expected in str(excinfo.value)
Exemple #7
0
    def test_initialize_reports_for_test_files(self, project_class,
                                               test_utils):
        """test file json reports are initialized with status pending
        for each test function"""
        _, project = project_class.activate()
        test_name = test_utils.random_string()
        content = 'def test_one(data):\n' \
                  '    pass\n' \
                  'def test_two(data):\n' \
                  '    pass'
        test_utils.create_test(project, test_name, content)

        timestamp = utils.get_timestamp()
        execution_name = test_name

        execution_runner = exc_runner.ExecutionRunner(project,
                                                      timestamp=timestamp)
        execution_runner.tests = [test_name]
        execution_runner.execution.processes = 1
        execution_runner.execution.browsers = exc_runner.define_browsers(
            ['chrome'], [], ['chrome'], [])
        execution_runner.execution.envs = []
        execution_runner.execution_name = execution_name
        execution_runner.execution.reportdir = execution_runner._create_execution_directory(
        )
        execution_list = execution_runner._define_execution_list()

        exc_runner.initialize_reports_for_test_files(project, execution_list)

        test_file_report = test_report.get_test_file_report_json(
            project, execution_name, timestamp, test_name)

        assert len(test_file_report) == 2
        assert any(
            t['test'] == 'test_one' and t['result'] == ResultsEnum.PENDING
            for t in test_file_report)
        assert any(
            t['test'] == 'test_two' and t['result'] == ResultsEnum.PENDING
            for t in test_file_report)
Exemple #8
0
 def test_executable_not_present(self):
     execution.settings = settings_manager.assign_settings_default_values(
         {})
     execution.logger = test_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 = f'No executable file found using path {setting_path}'
             assert expected in str(excinfo.value)
Exemple #9
0
    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 _define_browsers_mock(selected_browsers):
    default_browsers = gui_utils.get_supported_browsers_suggestions()
    return execution_runner.define_browsers(selected_browsers, [],
                                            default_browsers)