From ccf3fcc485812b4dbcc83ebe273b024125eb464d Mon Sep 17 00:00:00 2001 From: Churikova Tetiana Date: Tue, 6 Feb 2018 12:58:13 +0200 Subject: [PATCH] add ability to delete fork; rework BaseTestCase to use 2 drivers and setup\teardown classmethods; move all preconditions for tests to setup\teardown classmethods. --- test/end-to-end/pages/base_page.py | 3 -- test/end-to-end/tests/basetestcase.py | 45 +++++++++++++-------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/test/end-to-end/pages/base_page.py b/test/end-to-end/pages/base_page.py index 9bc6a21..f602775 100644 --- a/test/end-to-end/pages/base_page.py +++ b/test/end-to-end/pages/base_page.py @@ -16,6 +16,3 @@ class BasePageObject(object): def time_now(self): return datetime.now().strftime('%-m%-d%-H%-M%-S') - @property - def current_url(self): - return self.driver.current_url diff --git a/test/end-to-end/tests/basetestcase.py b/test/end-to-end/tests/basetestcase.py index 3f618b6..aa113c4 100644 --- a/test/end-to-end/tests/basetestcase.py +++ b/test/end-to-end/tests/basetestcase.py @@ -14,7 +14,7 @@ class BaseTestCase: sys.stdout = sys.stderr print("SauceOnDemandSessionID=%s job-name=%s" % (driver.session_id, pytest.config.getoption('build'))) - def return_caps(self): + def get_remote_caps(self): sauce_lab_cap = dict() sauce_lab_cap['name'] = test_data.test_name sauce_lab_cap['build'] = pytest.config.getoption('build') @@ -36,9 +36,9 @@ class BaseTestCase: cls.errors = [] cls.environment = pytest.config.getoption('env') -########################################################################################################################################################## +################################################################################################################### ######### Drivers setup -########################################################################################################################################################## +################################################################################################################### # # Dev Chrome options @@ -58,34 +58,33 @@ class BaseTestCase: # cls.executor_sauce_lab = 'http://%s:%s@ondemand.saucelabs.com:80/wd/hub' % ( environ.get('SAUCE_USERNAME'), environ.get('SAUCE_ACCESS_KEY')) - - cls.return_caps(cls) - sauce_lab_cap_dev = cls.capabilities_dev.to_capabilities() - cls.capabilities_sauce_lab_dev = sauce_lab_cap_dev - - cls.return_caps(cls) - sauce_lab_cap_org = cls.capabilities_org.to_capabilities() - cls.capabilities_sauce_lab_org = sauce_lab_cap_org - + drivers = [] if cls.environment == 'local': - cls.driver_dev = webdriver.Chrome(chrome_options=cls.capabilities_dev) - cls.driver_org = webdriver.Chrome(chrome_options=cls.capabilities_org) + for caps in cls.capabilities_dev, cls.capabilities_org: + driver = webdriver.Chrome(chrome_options=caps) + drivers.append(driver) if cls.environment == 'sauce': - cls.driver_dev = webdriver.Remote(cls.executor_sauce_lab, - desired_capabilities=cls.capabilities_sauce_lab_dev) - cls.print_sauce_lab_info(cls, cls.driver_dev) - cls.driver_org = webdriver.Remote(cls.executor_sauce_lab, - desired_capabilities=cls.capabilities_sauce_lab_org) - cls.print_sauce_lab_info(cls, cls.driver_org) + for caps in cls.capabilities_dev, cls.capabilities_org: + cls.get_remote_caps(cls) + new_caps = caps.to_capabilities() + driver = webdriver.Remote(cls.executor_sauce_lab, + desired_capabilities=new_caps) + drivers.append(driver) - for driver in cls.driver_dev, cls.driver_org: + for driver in drivers: + cls.print_sauce_lab_info(cls, driver) + + cls.driver_dev = drivers[0] + cls.driver_org = drivers[1] + + for driver in drivers: driver.implicitly_wait(10) -########################################################################################################################################################## +################################################################################################################### ######### Actions for each driver before class -########################################################################################################################################################## +################################################################################################################### ######ORG landing = LandingPage(cls.driver_org)