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)
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)
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()
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)
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()
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()
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()
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()
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)
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)
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)
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
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
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])
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()
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)
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)
def setup_class(cls): super().setup_class() config = read_config('../config/api_case_fields.json') cls.setup_database(config)
def setup_class(cls): super().setup_class() cls.user = read_config('../config/users.json') cls.login_page = login.LoginPage(cls.driver)