예제 #1
0
def createsuite_command(project, suite_name):
    if not test_directory.project_exists(project):
        msg = f'golem createsuite: error: a project with name {project} does not exist'
        sys.exit(msg)
    errors = suite_module.create_suite(project, suite_name)
    if errors:
        sys.exit('golem createsuite: error: {}'.format(' '.join(errors)))
예제 #2
0
def createproject_command(project):
    if test_directory.project_exists(project):
        msg = ('golem createproject: error: a project with name \'{}\' already exists'
               .format(project))
        sys.exit(msg)
    else:
        create_project(project)
예제 #3
0
def createtest_command(project, test_name):
    if not test_directory.project_exists(project):
        msg = f'golem createtest: error: a project with name {project} does not exist'
        sys.exit(msg)
    test_name = test_name.replace(os.sep, '.')
    errors = test.create_test(project, test_name)
    if errors:
        sys.exit('golem createtest: error: {}'.format(' '.join(errors)))
예제 #4
0
def project_delete():
    project_name = request.json['project']
    _verify_permissions(Permissions.SUPER_USER)
    errors = []
    if not test_directory.project_exists(project_name):
        errors.append('Project {} does not exist'.format(project_name))
    else:
        delete_project(project_name)
        # update projects cache
        gui_utils.ProjectsCache.remove(project_name)
    return jsonify({'errors': errors})
예제 #5
0
def run_command(project='', test_query='', browsers=None, processes=1,
                environments=None, interactive=False, timestamp=None,
                reports=None, report_folder=None, report_name=None,
                tags=None, cli_log_level=None):
    execution_runner = ExecutionRunner(browsers, processes, environments, interactive,
                                       timestamp, reports, report_folder, report_name, tags)
    if project:
        if test_directory.project_exists(project):
            execution_runner.project = project
            session.settings = settings_manager.get_project_settings(project)
            # add --interactive value to settings to make
            # it available from inside a test
            session.settings['interactive'] = interactive
            # override cli_log_level setting if provided by the CLI
            if cli_log_level:
                session.settings['cli_log_level'] = cli_log_level.upper()
            if test_query:
                norm_query = utils.normalize_query(test_query)
                if suite_module.Suite(project, norm_query).exists:
                    execution_runner.run_suite(norm_query)
                elif test.Test(project, norm_query).exists:
                    execution_runner.run_test(norm_query)
                else:
                    if test_query == '.':
                        test_query = ''
                    path = os.path.join(session.testdir, 'projects',
                                        project, 'tests', test_query)
                    if os.path.isdir(path):
                        execution_runner.run_directory(test_query)
                    else:
                        msg = ('golem run: error: the value {} does not match '
                               'an existing test, suite or directory'.format(test_query))
                        sys.exit(msg)
            else:
                print(messages.RUN_USAGE_MSG)
                tests = Project(project).test_tree
                print('Tests:')
                utils.display_tree_structure_command_line(tests['sub_elements'])
                suites = Project(project).suite_tree
                print('\nTest Suites:')
                # TODO print suites in structure
                for suite in suites['sub_elements']:
                    print('  ' + suite['name'])
        else:
            msg = ('golem run: error: the project {} does not exist'.format(project))
            sys.exit(msg)
    elif interactive:
        interactive_module.interactive(session.settings, browsers)
    else:
        print(messages.RUN_USAGE_MSG)
        print('Projects:')
        for project in test_directory.get_projects():
            print('  {}'.format(project))
예제 #6
0
def project_create():
    project_name = request.json['project']
    project_name = project_name.strip().replace(' ', '_')
    _verify_permissions(Permissions.SUPER_USER)
    errors = []
    if len(project_name) < 3:
        errors.append('Project name is too short')
    elif len(project_name) > 50:
        errors.append('Project name is too long')
    elif test_directory.project_exists(project_name):
        errors.append('A project with that name already exists')
    else:
        create_project(project_name)
        # update projects cache
        gui_utils.ProjectsCache.add(project_name)
    return jsonify({'errors': errors, 'project_name': project_name})
예제 #7
0
 def test_project_exists(self, testdir_session, test_utils):
     testdir_session.activate()
     project = test_utils.random_string(10)
     assert not test_directory.project_exists(project)
     create_project(project)
     assert test_directory.project_exists(project)
예제 #8
0
 def test_delete_project(self, project_function):
     _, project_name = project_function.activate()
     errors = delete_project(project_name)
     assert errors == []
     assert not test_directory.project_exists(project_name)
예제 #9
0
def project_exists():
    project = request.json['project']
    return jsonify(test_directory.project_exists(project))
예제 #10
0
 def wrapper(*args, **kwargs):
     if not test_directory.project_exists(kwargs['project']):
         abort(404,
               'The project {} does not exist.'.format(kwargs['project']))
     return func(*args, **kwargs)
예제 #11
0
def createproject_command(project):
    if test_directory.project_exists(project):
        m = f'golem createproject: error: a project with name \'{project}\' already exists'
        sys.exit(m)
    else:
        create_project(project)
예제 #12
0
 def wrapper(*args, **kwargs):
     if not test_directory.project_exists(kwargs['project']):
         abort(404, f'The project {kwargs["project"]} does not exist.')
     return func(*args, **kwargs)