示例#1
0
 def test_get_global_settings_default(self, testdir_session):
     testdir = testdir_session['path']
     global_settings = settings_manager.get_global_settings(testdir)
     expected = {
         'console_log_level': 'INFO',
         'default_browser': 'chrome',
         'chromedriver_path': './drivers/chromedriver*',
         'edgedriver_path': './drivers/edgedriver*',
         'geckodriver_path': './drivers/geckodriver*',
         'iedriver_path': './drivers/iedriver*',
         'operadriver_path': './drivers/operadriver*',
         # 'safari_path': './drivers/safari*',
         'search_timeout': 20,
         'wait_displayed': False,
         'log_all_events': True,
         'remote_browsers': {},
         'remote_url': 'http://localhost:4444/wd/hub',
         'screenshot_on_end': False,
         'screenshot_on_error': True,
         'screenshot_on_step': False,
         'test_data': 'csv',
         'wait_hook': None,
         'results_to_db': False,
         'db_string': '',
         'db_type': 'TINYDB',
         'db_name': 'testdb'
     }
     assert global_settings == expected
示例#2
0
    def get_actions(self, project_name=None):
        if self.actions is None:
            self._get_actions()

        if project_name:
            settings = settings_manager.get_project_settings(project_name)
        else:
            settings = settings_manager.get_global_settings()

        if settings['implicit_actions_import']:
            return self.actions
        else:
            return self.explicit_actions
示例#3
0
def save_settings():
    if request.method == 'POST':
        project = request.json['project']
        project_settings = request.json['projectSettings']
        global_settings = request.json['globalSettings']
        result = {
            'result': 'ok',
            'errors': []
        }
        settings_manager.save_global_settings(root_path, global_settings)
        test_execution.settings = settings_manager.get_global_settings(root_path)
        if project_settings:
            settings_manager.save_project_settings(root_path, project, project_settings)
            # re-read project settings
            test_execution.settings = settings_manager.get_project_settings(root_path, project)
        return json.dumps(result)
示例#4
0
def command_dispatcher(args, testdir):
    # Use --golem-dir arg if set
    if args.golem_dir is not None:
        testdir = os.path.abspath(args.golem_dir)
    session.testdir = testdir
    # Insert the golem testdir into sys.path to allow imports
    # from the root of this dir when cwd is not this dir
    sys.path.insert(1, testdir)
    session.testdir = testdir

    if args.help:
        display_help(args.help, args.command)
    elif args.command is None:
        if args.version:
            display_version()
        else:
            print(messages.USAGE_MSG)
    else:
        # It needs a valid Golem test directory from now on
        if not test_directory.is_valid_test_directory(testdir):
            sys.exit(errors.invalid_test_directory.format(testdir))
        # Read global settings
        session.settings = get_global_settings()
        if args.command == 'run':
            run_command(args.project, args.test_query, args.browsers,
                        args.processes, args.environments, args.interactive,
                        args.timestamp, args.report, args.report_folder,
                        args.report_name, args.tags, args.cli_log_level,
                        args.test_functions)
        elif args.command == 'gui':
            gui_command(args.host, args.port, args.debug)
        elif args.command == 'createproject':
            createproject_command(args.project)
        elif args.command == 'createtest':
            createtest_command(args.project, args.test)
        elif args.command == 'createsuite':
            createsuite_command(args.project, args.suite)
        elif args.command == 'createuser':
            createuser_command()
        elif args.command == 'createsuperuser':
            createsuperuser_command(args.username, args.email, args.password,
                                    args.noinput)
 def test_get_global_settings_default(self, testdir_fixture):
     testdir = testdir_fixture['path']
     global_settings = settings_manager.get_global_settings(testdir)
     expected = {
         'chromedriver_path': './drivers/chromedriver',
         'console_log_level': 'INFO',
         'default_browser': 'chrome',
         'geckodriver_path': './drivers/geckodriver',
         'iedriver_path': './drivers/iedriver.exe',
         'implicit_wait': 20,
         'log_all_events': True,
         'remote_browsers': {},
         'remote_url': 'http://localhost:4444/wd/hub',
         'screenshot_on_end': False,
         'screenshot_on_error': True,
         'screenshot_on_step': False,
         'test_data': 'csv',
         'wait_hook': None
     }
     assert global_settings == expected
def create_app():
    """Call this function to create a Golem GUI app object.
    If called externally (e.g.: from a WSGI server) the cwd
    should be a valid Golem test directory"""
    if not session.testdir:
        testdir = os.getcwd()
        if not test_directory.is_valid_test_directory(testdir):
            sys.exit(errors.invalid_test_directory.format(testdir))
        else:
            session.testdir = testdir
    if not session.settings:
        session.settings = settings_manager.get_global_settings()
    app = Flask(__name__)
    app.secret_key = gui_utils.get_secret_key()
    app.config['SESSION_TYPE'] = 'filesystem'
    app.config['GOLEM_VERSION'] = golem.__version__
    login_manager = LoginManager()
    login_manager.login_view = 'webapp.login'
    login_manager.init_app(app)
    app.register_blueprint(webapp_bp)
    app.register_blueprint(report_bp)
    app.register_blueprint(api_bp)
    app.jinja_env.globals[
        'get_user_projects'] = gui_utils.ProjectsCache.get_user_projects

    @login_manager.user_loader
    def load_user(user_id):
        return user_management.Users.get_user_by_id(user_id)

    @app.before_request
    def before_request():
        g.user = current_user

    @app.errorhandler(404)
    def page_not_found(error):
        return render_template('404.html', message=error.description), 404

    return app
示例#7
0
 def test_get_global_settings_default(self, testdir_function):
     global_settings = settings_manager.get_global_settings(
         testdir_function.path)
     expected = {
         'console_log_level': 'INFO',
         'default_browser': 'chrome',
         'chromedriver_path': './drivers/chromedriver*',
         'edgedriver_path': './drivers/edgedriver*',
         'geckodriver_path': './drivers/geckodriver*',
         'iedriver_path': './drivers/iedriver*',
         'operadriver_path': './drivers/operadriver*',
         'search_timeout': 20,
         'wait_displayed': False,
         'log_all_events': True,
         'remote_browsers': {},
         'remote_url': 'http://localhost:4444/wd/hub',
         'screenshot_on_end': False,
         'screenshot_on_error': True,
         'screenshot_on_step': False,
         'test_data': 'csv',
         'wait_hook': None,
         'start_maximized': True
     }
     assert global_settings == expected
示例#8
0
 def activate(self):
     if not self.settings:
         self.settings = settings_manager.get_global_settings(self.path)
     test_execution.root_path = self.path
     test_execution.settings = self.settings
     return self
示例#9
0
 def test_get_global_settings_default(self, testdir_function):
     testdir_function.activate()
     global_settings = settings_manager.get_global_settings()
     assert global_settings == DEFAULT_PREDEFINED
示例#10
0
 def activate(self):
     session.testdir = self.path
     if self.settings is None:
         self.settings = settings_manager.get_global_settings()
     session.settings = self.settings
     return self.path
示例#11
0
def settings_global_get():
    _verify_permissions(Permissions.SUPER_USER)
    return jsonify(settings_manager.get_global_settings())
示例#12
0
def settings_global_save():
    settings = request.json['settings']
    _verify_permissions(Permissions.SUPER_USER)
    settings_manager.save_global_settings(settings)
    session.settings = settings_manager.get_global_settings()
    return jsonify('settings-saved')
示例#13
0
 def test_get_global_settings_default(self, testdir_function):
     global_settings = settings_manager.get_global_settings(
         testdir_function.path)
     assert global_settings == DEFAULT_PREDEFINED