Exemplo n.º 1
0
    def __init__(self, driver=None):
        self.driver = driver
        self.project = ProjectPage(driver)
        self.users_roles = UsersRolesPage(driver)
        self.suite = SuitePage(driver)
        self.section = SectionsPage(driver)
        self.tests = TestCasesPage(driver)
        self.run = RunsPage(driver)
        self.plan = PlansPage(driver)
        self.cases = CasesPage(driver)
        self.integration = IntegrationPage(self.driver)
        self.login = LoginPage(self.driver)
        self.site_settings_page = SiteSettingsPage(driver)

        self.t = read_config('../config/tests.json')
        self.data = merge_configs('~/testrail.json', '../config/data.json')
        self.p = read_config('../config/project.json')
        self.runs = read_config('../config/runs.json')
        self.users = read_config('../config/users.json')
        self.plans = read_config('../config/plans.json')
        self.site_settings = read_config('../config/site_settings.json')
        self.plugin = read_config("../config/plugin.json")
        self.sso_settings = read_config('../config/sso_settings.json')

        self.users_overview_url = self.data.server_name + self.users.overview_url
Exemplo n.º 2
0
    def setup_class(cls):
        # Get test data
        cls.data = merge_configs('~/testrail.json', '../config/data.json')
        cls.p = read_config('../config/project.json')
        cls.runs = read_config('../config/runs.json')
        cls.users = read_config('../config/users.json')
        cls.t = read_config('../config/tests.json')
        cls.plans = read_config('../config/plans.json')

        # Prepare browser
        cls.driver = DriverManager.get_driver(DriverType.FIREFOX)

        cls.driver.maximize_window()
        cls.driver.get(cls.data.server_name)
        cls.driver.implicitly_wait(10)

        # Prepare page objects
        cls.suite = suite_page.SuitePage(cls.driver)
        cls.login = login_page.LoginPage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.tests = test_cases_page.TestCasesPage(cls.driver)
        cls.section = section_page.SectionsPage(cls.driver)
        cls.plan = plans_page.PlansPage(cls.driver)
        cls.run = runs_page.RunsPage(cls.driver)
        cls.cases = cases_page.CasesPage(cls.driver)
        cls.prepare_data = PrepareData(cls.driver)
        cls.users_overview_url = cls.data.server_name + cls.users.overview_url

        # Perquisites for tests execution
        cls.prepare_for_testing(cls)
Exemplo n.º 3
0
    def setup_class(cls):
        super().setup_class()

        # Get test data
        cls.p = read_config('../config/project.json')
        cls.reports = read_config("../config/reports.json")
        cls.sso_settings = read_config('../config/sso_settings.json')
        cls.users = read_config('../config/users.json')
        cls.site_settings_config = read_config('../config/site_settings.json')

        cls.client = APIClient(cls.data)

        # Prepare page objects
        cls.project = project_page.ProjectPage(cls.driver)
        cls.reports_page = reports_page.ReportsPage(cls.driver)
        cls.site_settings = site_settings.SiteSettingsPage(cls.driver)
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.prepare_data = PrepareData(cls.driver)

        cls.site_settings_url = cls.data.server_name + cls.sso_settings.site_settings_url
        cls.users_overview_url = cls.data.server_name + cls.users.overview_url

        # Perquisites for tests execution
        cls.setup_database(cls.reports)
        cls.prepare_for_testing(cls)
Exemplo n.º 4
0
    def setup_class(cls):
        super().setup_class()
        cls.attachments = read_config('../config/attachments.json')
        cls.users = read_config('../config/users.json')

        cls.client = APIClient(cls.data)
        cls.attachments_page = APIPage()
        cls.users_roles_page = UsersRolesPage(cls.driver)
        cls.login_page = LoginPage(cls.driver)

        cls.prepare_test_case()
Exemplo n.º 5
0
    def add_user_with_permissions(cls, permission="Read-only"):
        cls.users = read_config('../config/users.json')
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.users_overview_url = cls.data.server_name + cls.users.overview_url

        cls.user = decode_data(str(cls.users.regular_user))
        cls.users_roles.open_page(cls.users_overview_url)
        cls.users_roles.add_user(cls.user)

        cls.users_roles.select_user(cls.user.full_name)
        cls.users_roles.open_access_tab()
        cls.users_roles.change_role_for_user(permission)

        return cls.user
Exemplo n.º 6
0
    def setup_class(cls):
        super().setup_class()

        cls.r = read_config('../config/runs.json')
        cls.runs = runs_page.RunsPage(cls.driver)

        cls.p = read_config('../config/project.json')
        cls.project = project_page.ProjectPage(cls.driver)

        cls.t = read_config('../config/tests.json')
        cls.tests = testcases_page.TestCasesPage(cls.driver)

        cls.u = read_config('../config/users.json')
        cls.users = UsersRolesPage(cls.driver)

        cls.m = read_config("../config/milestones.json")
        cls.miles = milestones_page.MilestonesPage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing()
    def setup_class(cls):
        super().setup_class()

        # Get test data
        cls.sso_settings = read_config('../config/sso_settings.json')
        cls.user = read_config('../config/users.json')
        cls.auditing = read_config('../config/auditing.json')

        # Prepare page objects
        cls.site_settings_url = cls.data.server_name + cls.sso_settings.site_settings_url
        cls.license_url = cls.data.server_name + cls.auditing.license_url
        cls.user_overview_url = cls.data.server_name + cls.user.overview_url
        cls.site_settings = SiteSettingsPage(cls.driver)
        cls.login = LoginPage(cls.driver)
        cls.project = ProjectPage(cls.driver)
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.setup_database(cls.auditing)

        cls.login_as_admin(cls)
        cls.prepare_regular_user(cls)
Exemplo n.º 8
0
    def add_user_with_project_permissions(cls,
                                          project_id: int,
                                          permission="Read-only"):
        cls.project = read_config('../config/project.json')
        cls.projects = ProjectPage(cls.driver)
        cls.edit_project_url = cls.data.server_name + cls.project.edit_project_url + str(
            project_id)
        cls.users = read_config('../config/users.json')
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.users_overview_url = cls.data.server_name + cls.users.overview_url

        cls.user = decode_data(str(cls.users.tester_user))
        cls.users_roles.open_page(cls.users_overview_url)
        user_id = cls.users_roles.add_user(cls.user)

        cls.projects.open_page(cls.edit_project_url)
        cls.projects.open_access_tab()
        cls.projects.change_role_for_user(user_id, permission)

        return cls.user
Exemplo n.º 9
0
    def setup_class(cls):
        super().setup_class()
        # Get test data
        cls.users = read_config('../config/users.json')
        cls.sso_settings = read_config('../config/sso_settings.json')

        cls.setup_database(cls.users)

        platform = cls.data.database.dbtype
        if platform == "mssql":
            cls.valid_settings = cls.sso_settings.valid_settings_windows
        elif platform == "mysql":
            cls.valid_settings = cls.sso_settings.valid_settings_linux
        else:
            cls.valid_settings = cls.sso_settings.valid_settings_hosted

        # Prepare page objects
        cls.users_overview_url = cls.data.server_name + cls.users.overview_url
        cls.site_settings_url = cls.data.server_name + cls.sso_settings.site_settings_url
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.site_settings = SiteSettingsPage(cls.driver)
Exemplo n.º 10
0
    def setup_class(cls):
        super().setup_class()

        cls.sso_settings = read_config('../config/sso_settings.json')
        cls.user = read_config('../config/users.json')

        #Set URLs
        cls.sso_settings_url = cls.data.server_name + cls.sso_settings.site_settings_url + cls.sso_settings.tabs.sso
        cls.user_overview_url = cls.data.server_name + cls.user.overview_url

        #Initialize Page Objects
        cls.site_settings = SiteSettingsPage(cls.driver)
        cls.users = UsersRolesPage(cls.driver)

        cls.setup_database(cls.sso_settings)

        platform = cls.data.database.dbtype
        if platform == "mssql":
            cls.valid_settings = cls.sso_settings.valid_settings_windows
        elif platform == "mysql":
            cls.valid_settings = cls.sso_settings.valid_settings_linux
        else:
            cls.valid_settings = cls.sso_settings.valid_settings_hosted
Exemplo n.º 11
0
    def setup_class(cls):
        # Get test data
        super().setup_class()

        cls.p = read_config('../config/project.json')
        cls.t = read_config("../config/tests.json")
        cls.users = read_config('../config/users.json')
        cls.site_settings = read_config('../config/site_settings.json')
        cls.runs = read_config('../config/runs.json')
        cls.plugin = read_config('../config/plugin.json')

        # Prepare page objects
        cls.section = section_page.SectionsPage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)
        cls.tests = cases_page.TestCasesPage(cls.driver)
        cls.run = RunsPage(cls.driver)
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.prepare_data = PrepareData(cls.driver)
        cls.integration = IntegrationPage(cls.driver)

        # Perquisites for tests execution
        cls.project_overview = cls.data.server_name + cls.p.project_overview_url
        cls.prepare_for_testing()
Exemplo n.º 12
0
class PrepareData(BasePageElement):
    def __init__(self, driver=None):
        self.driver = driver
        self.project = ProjectPage(driver)
        self.users_roles = UsersRolesPage(driver)
        self.suite = SuitePage(driver)
        self.section = SectionsPage(driver)
        self.tests = TestCasesPage(driver)
        self.run = RunsPage(driver)
        self.plan = PlansPage(driver)
        self.cases = CasesPage(driver)
        self.integration = IntegrationPage(self.driver)
        self.login = LoginPage(self.driver)
        self.site_settings_page = SiteSettingsPage(driver)

        self.t = read_config('../config/tests.json')
        self.data = merge_configs('~/testrail.json', '../config/data.json')
        self.p = read_config('../config/project.json')
        self.runs = read_config('../config/runs.json')
        self.users = read_config('../config/users.json')
        self.plans = read_config('../config/plans.json')
        self.site_settings = read_config('../config/site_settings.json')
        self.plugin = read_config("../config/plugin.json")
        self.sso_settings = read_config('../config/sso_settings.json')

        self.users_overview_url = self.data.server_name + self.users.overview_url

    def add_single_repo_project(self, add_project_url, project_name):
        self.project.open_page(add_project_url)
        project_id = self.project.add_single_repo_project(project_name)
        return project_id

    def add_multi_repo_project(self, add_project_url, project_name):
        self.project.open_page(add_project_url)
        project_id = self.project.add_multi_repo_project(project_name)
        return project_id

    def delete_existing_users(self, users_overview_url, message):
        self.users_roles.open_page(users_overview_url)
        self.users_roles.forget_all_added_users(message)

    def add_multiple_users(self, users, multiple_users_url, message):
        users_to_add = [user.full_name for user in users]
        user_mails = [user.email_address for user in users]
        users_add_str = ''.join([
            str(name) + ", " + str(email) + "\n"
            for name, email in zip(users_to_add, user_mails)
        ])
        self.users_roles.open_page(multiple_users_url)
        self.users_roles.add_multiple_users(users_add_str, users, message)
        return users_to_add

    def add_test_cases(self, project_overview_url, suite_url, cases,
                       section_name, message):
        self.suite.open_page(project_overview_url)
        suite_id = self.section.open_test_cases()
        test_case_url = suite_url + suite_id
        self.tests.add_multiple_test(cases, test_case_url, section_name,
                                     message)
        return suite_id

    def add_section_with_test_cases_inline(self, project_overview_url,
                                           cases_number: int):
        self.suite.open_page(project_overview_url)
        suite_id = self.section.open_test_cases()
        cases = []
        for case in range(0, cases_number):
            case = "TestCase_" + "".join(
                random.sample((string.ascii_uppercase + string.digits), 6))
            cases.append(case)

        self.section.add_first_section(self.p.sections.first_section)
        self.section.press_add_section_button()
        section, section_id = self.section.get_section(
            self.p.sections.first_section)
        self.tests.press_add_test_inline(str(section_id))
        for case in cases:
            self.tests.add_test_case_inline(str(section_id), case)
            self.tests.confirm_adding_testcase_inline(section)

        return suite_id