Exemple #1
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)
Exemple #2
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)
Exemple #3
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()
    def setup_class(cls):
        super().setup_class()

        # Get test data
        cls.p = read_config('../config/project.json')
        cls.runs = read_config('../config/runs.json')

        # Prepare page objects
        cls.suite = suite_page.SuitePage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing()
Exemple #5
0
    def setup_class(cls):
        super().setup_class()
        # Get test data
        cls.p = read_config('../config/project.json')
        cls.youtrack = read_config("../config/plugin.json")

        # Prepare page objects
        cls.suite = suite_page.SuitePage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)
        cls.integration = integration_page.IntegrationPage(cls.driver)

        # Perquisites for tests executions
        cls.prepare_for_testing(cls)
Exemple #6
0
    def setup_class(cls):
        super().setup_class()

        cls.m = read_config('../config/milestones.json')
        cls.p = read_config('../config/project.json')
        cls.r = read_config('../config/runs.json')

        cls.project = project_page.ProjectPage(cls.driver)
        cls.miles = milestones_page.MilestonesPage(cls.driver)
        cls.runs = runs_page.RunsPage(cls.driver)
        cls.suite = suite_page.SuitePage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing()
Exemple #7
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")

        # Prepare page objects
        cls.section = section_page.SectionsPage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)
        cls.tests = cases_page.TestCasesPage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing()
    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 setup_class(cls):
        super().setup_class()

        cls.attachments = read_config('../config/attachments.json')

        cls.api_page = APIPage()
        cls.prepare_test_case()
Exemple #10
0
    def setup_class(cls):
        super().setup_class()

        cls.p = read_config('../config/project.json')
        cls.r = read_config('../config/runs.json')
        cls.plan_data = read_config('../config/plans.json')
        cls.t = read_config('../config/tests.json')
        cls.u = read_config('../config/users.json')

        cls.project = project_page.ProjectPage(cls.driver)
        cls.plans = plans_page.PlansPage(cls.driver)
        cls.tests = testcases_page.TestCasesPage(cls.driver)
        cls.users = users_roles_page.UsersRolesPage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing()
Exemple #11
0
    def test_link_milestone_to_plan(self):
        milestone_data = read_config("../config/milestones.json")
        miles = milestones_page.MilestonesPage(self.driver)

        plan = self.plan_data.plans[0]
        add_plan_url = self.data.server_name + self.plan_data.add_url + self.project_id
        plan_message = self.plan_data.messages.msg_success_added_plan

        add_milestone_url = self.data.server_name + milestone_data.add_milestone_url.format(
            self.project_id)
        milestone_overview_url = self.data.server_name + milestone_data.milestones_overview_url.format(
            self.project_id)
        milestone = milestone_data.milestones[0]
        milestone_message = milestone_data.messages.msg_success_added_milestone

        miles.open_page(add_milestone_url)
        miles.add_milestone(milestone.name, milestone.description)
        miles.confirm_milestone(milestone_message)

        self.plans.open_page(add_plan_url)
        self.plans.select_milestone(milestone.name)
        plan_id, _ = self.plans.add_data_to_plan(plan.name, plan.description,
                                                 plan_message)
        plan_overview_url = self.data.server_name + self.plan_data.view_url + plan_id

        self.plans.open_page(milestone_overview_url)
        self.plans.assert_plan_in_milestone(milestone.name, plan.name,
                                            plan_overview_url)
    def setup_class(cls):
        super().setup_class()

        cls.customizations = read_config('../config/customizations.json')
        cls.customizations_page = customizations.CustomizationsPage(cls.driver)

        cls.setup_database(cls.customizations)
    def setup_class(cls):
        super().setup_class()

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

        cls.prepare_for_testing(cls)
        # Removing existing projects if any to avoid mismatch of project status counts on dashboard.
        cls.delete_prepared_data(cls)
    def setup_class(cls):
        super().setup_class()

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

        # Prepare page objects
        cls.project = project_page.ProjectPage(cls.driver)
        cls.backups = backups_page.BackupsPage(cls.driver)
        cls.prepare_data = PrepareData(cls.driver)

        cls.backups_url = cls.data.server_name + cls.site_settings.site_settings_url + cls.site_settings.tabs.backups
        cls.user_overview_url = cls.data.server_name + cls.users.overview_url

        cls.prepare_data.login_as_admin()
        cls.prepare_data.add_tester_user()
Exemple #15
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()

        cls.enterprise = read_config('../config/enterprise.json')

        # Set URLs
        cls.admin_overview_url = cls.data.server_name + cls.enterprise.urls.admin_overview_url
        cls.subscription_url = cls.data.server_name + cls.enterprise.urls.subscription_url

        # Initialize Page Object
        cls.administration = AdministrationPage(cls.driver)
Exemple #17
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
    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)
    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)
Exemple #20
0
    def setup_class(cls):
        super().setup_class()

        cls.p = read_config('../config/project.json')
        cls.setup_database(cls.p)

        cls.section = section_page.SectionsPage(cls.driver)
        cls.project = project_page.ProjectPage(cls.driver)

        # Perquisites for tests execution
        cls.prepare_for_testing(cls)
        # Removing existing projects if any to avoid mismatch of project status counts on dashboard.
        cls.delete_prepared_data(cls)
Exemple #21
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
Exemple #22
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
Exemple #23
0
    def test_c287_rerun_with_status_selection(self):
        results = results_page.ResultsPage(self.driver)
        result_data = read_config('../config/results.json')
        runs_overview_url = self.data.server_name + self.r.overview_url + self.project_id
        run = self.r.runs[0]
        passed, failed, retest = result_data.statuses[:3]
        case1, case2, case3 = self.cases
        message = self.r.messages.msg_success_added_test_run

        self.runs.open_page(runs_overview_url)
        self.runs.click_add_test_run()
        self.runs.add_data_to_run(run.name, run.description)

        results.expand_case(case1.title)
        results.add_result_with_status(passed)
        results.expand_case(case2.title)
        results.add_result_with_status(failed)
        results.expand_case(case3.title)
        results.add_result_with_status(retest)

        self.runs.rerun_run(message, statuses=(failed, retest))
        self.runs.verify_run(run.name, run.description)
        self.runs.assert_cases_in_run([case2.title, case3.title])
Exemple #24
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()
Exemple #25
0
class TestResults(BaseTest):
    @classmethod
    def setup_class(cls):
        super().setup_class()

        cls.result_data = read_config('../config/results.json')
        cls.results = results_page.ResultsPage(cls.driver)

        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)

        # Perquisites for tests execution
        cls.prepare_for_testing()

    @classmethod
    def teardown_class(cls):
        cls.delete_prepared_data()
        super().teardown_class()

    def setup_method(self):
        self.runs.open_page(self.data.server_name)
        runs_overview_url = self.data.server_name + self.r.overview_url + self.project_id
        run = self.r.runs[0]
        self.runs.open_page(runs_overview_url)
        self.runs.click_add_test_run()
        self.run_id = self.runs.add_data_to_run(run.name, run.description)
        self.view_run_url = self.data.server_name + self.r.run_view_url + self.run_id
        self.results.open_page(self.view_run_url)

    def teardown_method(self):
        edit_run_url = self.data.server_name + self.r.edit_url + self.run_id
        self.runs.open_page(edit_run_url)
        self.runs.delete_run()

    @classmethod
    def prepare_for_testing(cls):
        add_project_url = (cls.data.server_name + cls.p.add_project_url)

        cls.login.simple_login(cls.data.login.username,
                               cls.data.login.password)
        cls.project.open_page(add_project_url)
        cls.project_id = cls.project.add_single_repo_project(
            cls.p.project_info.project_name)

        case1 = decode_data(str(cls.t.cases[0]))
        case2 = decode_data(str(cls.t.cases[1]))
        case3 = decode_data(str(cls.t.cases[2]))

        cls.tests.open_page(cls.data.server_name + cls.r.overview_url +
                            cls.project_id)
        cls.tests.add_tests(case1, case2, case3)
        cls.cases = [case1, case2, case3]

        full_name = cls.r.add.user_full_name
        email_address = cls.r.add.user_email_address
        password = cls.r.add.user_password
        user = User(full_name, email_address, password)
        cls.users.open_page(cls.data.server_name + cls.u.overview_url)
        cls.users.add_user(user)

    @classmethod
    def delete_prepared_data(cls):
        projects_overview_url = (cls.data.server_name + cls.p.overview_url)
        message = cls.p.messages.msg_success_deleted_project

        cls.project.open_page(projects_overview_url)
        cls.project.delete_project(cls.p.project_info.project_name)
        cls.project.validate_success_message(message)

        full_name = cls.r.add.user_full_name
        cls.users.open_page(cls.data.server_name + cls.u.overview_url)
        cls.users.forget_user(full_name)

    @pytest.mark.testrail(id=365)
    def test_c365_add_first_result(self):
        status = self.result_data.statuses[0]
        case = self.cases[0]

        self.results.expand_case(case.title)
        self.results.add_result_with_status(status)

        self.results.assert_status(case.title, status)

    @pytest.mark.testrail(id=366)
    def test_c366_add_subsequent_results(self):
        status = self.result_data.statuses[0]

        for case in self.cases:
            self.results.expand_case(case.title)
            self.results.add_result_with_status(status)

        for case in self.cases:
            self.results.assert_status(case.title, status)

    @pytest.mark.testrail(ids=[367, 368, 369, 370])
    @pytest.mark.parametrize('status',
                             read_config('../config/results.json').statuses)
    def test_c367_c368_c369_c370_statuses(self, status):
        case = self.cases[0]

        self.results.expand_case(case.title)
        self.results.add_result_with_status(status)

        self.results.assert_status(case.title, status)
Exemple #26
0
import pytest
from src.pages.administration.site_settings_page import SiteSettingsPage
from src.pages.administration.users_roles_page import UsersRolesPage
from src.test_cases.base_test import BaseTest
from src.common import decode_data, read_config
import os

ENTERPRISE = False
if read_config('../config/enterprise.json').version == 'enterprise trial':
    ENTERPRISE = True
elif read_config('../config/enterprise.json').version == 'enterprise':
    ENTERPRISE = True


@pytest.mark.skipif(not ENTERPRISE, reason="TestRail is not Enterprise")
class TestSSO(BaseTest):
    @classmethod
    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)
Exemple #27
0
 def setup_class(cls):
     super().setup_class()
     config = read_config('../config/api_case_fields.json')
     cls.setup_database(config)
Exemple #28
0
    def setup_class(cls):
        super().setup_class()

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

        cls.login_page = login.LoginPage(cls.driver)