def setUpClass(cls): super(CrittercismTestCase, cls).setUpClass() #======= login to portal ========= cls.browser.get(config.CliConfig().common.url + "/developers/login") cls.browser.find_element_by_id('email').clear() cls.browser.find_element_by_id('email').send_keys(config.CliConfig().login.username) cls.browser.find_element_by_name('password').send_keys(config.CliConfig().login.password) cls.browser.find_element_by_id('commit').submit()
def setUpClass(cls): super(SeleniumTestCase, cls).setUpClass() if os.environ.get("BROWSER", "firefox") == "firefox": cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.FIREFOX) elif os.environ.get("BROWSER", "firefox") == "chrome": cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.CHROME) elif os.environ.get("BROWSER", "firefox") == "safari": cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.SAFARI) cls.browser.implicitly_wait(5)
def loadKnownBugs(cls): """Load data from known_failure File""" fH = None try: logger.info("Loading Known Failures from : " + str(config.CliConfig().common.known_bugs_filename)) if os.path.isfile(config.CliConfig().common.known_bugs_filename): with open(config.CliConfig().common.known_bugs_filename) as fH: for line in fH: if re.search('^#', line): continue config.CliConfig().knownFailureList.append(line) logger.debug(line) finally: if fH is not None: fH.close()
def setUpClass(cls): """ """ super(AlertTestSuite, cls).setUpClass() app_name = config.CliConfig().apps.android_with_data cls.app_ids.append(team.get_id_from_app_name(cls.browser, app_name)[0])
def setUpClass(cls): """ """ super(CrashDetailsTestSuite, cls).setUpClass() CrashDetailsTestSuite.app_ids = team.get_id_from_app_name( browser=cls.browser, app_name=config.CliConfig().apps.android_with_data)
def setUpClass(cls): """ """ super(AnalyticsTestSuite, cls).setUpClass() # cls.browser.get(cls.config.common.url + "/developers/analytics/52fb0fdb8b2e3365c6000008") AnalyticsTestSuite.app_ids = team.get_id_from_app_name( browser=cls.browser, app_name=config.CliConfig().apps.android_with_data)
def login(browser=None, username=config.CliConfig().login.username, password=config.CliConfig().login.password): """ Login to crittercism using username and password supplied. If no login credential is passed then it use from the config file :Args: - browser = Current instance of browser to use to login - username = Optional Value: username to login into yahoo - password = Optional Value: password to login. Yes, the password is in plain text at the moment will encrypt it soon :Usage: utils.login(self.browser) """ browser.get(config.CliConfig().common.url + "/developers/login") browser.find_element_by_id('email').clear() browser.find_element_by_id('email').send_keys(username) browser.find_element_by_name('password').send_keys(password) browser.find_element_by_id('commit').submit()
def canSkipped(message): """ Iterate through all the known failures and skip the error if it is already recorded """ for failure in config.CliConfig().knownFailureList: msg = failure.split('|') logger.debug("Splitting " + str(msg.__len__()) + " " + join(msg)) if msg[1].strip() in message: logger.warn("Skipping tests for " + str(failure)) raise unittest.SkipTest(str(failure)) return False
def login_to_yahoo(browser=None, username=config.CliConfig().login.test_user_engg, password=config.CliConfig().login.password): """ Login to yahoo mail using username and password supplied. If no login credential is passed then it use from the config file :Args: - browser = Current instance of browser to use to login - username = Optional Value: username to login into yahoo - password = Optional Value: password to login. Yes, the password is in plain text at the moment will encrypt it soon :Usage: utils.login_to_yahoo(self.browser) """ browser.get("https://mail.yahoo.com") if browser.find_elements_by_id("username").__len__() == 0: logger.debug("Already logged in. Hence quitting") return browser.find_element_by_id("username").send_keys(username) browser.find_element_by_id("passwd").send_keys(password) browser.find_element_by_id(".save").submit() logger.debug("Hit the login button to login to yahoo")
def delete_app_given_ids(browser=None, app_ids=None): """ Delete the app(s) given an Ids :Args: - browser = Current instance of browser - app_ids = List of app_ids to delete :Usage: team.get_id_from_app_name(browser, app_ids) """ for app_id in app_ids: url = config.CliConfig( ).common.url + '/developers/app-settings/' + app_id + '#delete-app' browser.get(url) browser.find_element_by_id('delete-app-' + app_id).click() alert = browser.switch_to_alert() alert.accept() return True
def get_id_from_app_name(browser=None, app_name=None): """ Return an app_id given an app name :Args: - browser = Current instance of browser - app_name = Name of the app to look for :Usage: team.get_id_from_app_name(browser, app_name) """ browser.get(config.CliConfig().common.url + "/developers") table = browser.find_element_by_id("app-table") app_list = table.find_elements_by_xpath( '//*[@id="app-table"]/tbody/*/td[2]/a[contains(text(),"' + app_name + '")]') app_ids = [] for app in app_list: id = app.get_attribute("href").split('/') app_ids.append(id[len(id) - 1]) return app_ids
def test_billing_search_by_email(self): __name__ + """ [Test] Verify User's Email Address and Credit Card through admin login """ search_page_url = config.CliConfig().common.url + "/admin/search" email_id = "*****@*****.**" self.browser.get(search_page_url) self.browser.find_element_by_id("search-email").send_keys(email_id + Keys.ENTER) email_link = self.browser.find_element_by_xpath( "//a[contains(text(),'" + email_id + "')]").get_attribute("href") self.browser.get(email_link) actual_email = self.browser.find_element_by_xpath( "//table//*/*[contains(text(),'*****@*****.**')]" ).text self.assertEqual(actual_email, email_id, ("Expecting %s email but found %s instead" % (actual_email, email_id))) billed_plan_caption = self.browser.find_element_by_xpath( '//*[@id="admin-portal"]/div/table[1]/tbody/tr[13]/td[1]/strong' ).text billed_plan_value = self.browser.find_element_by_xpath( '//*[@id="admin-portal"]/div/table[1]/tbody/tr[13]/td[2]').text self.assertEqual("Basic", billed_plan_value, ("Expecting Basic but found %s" % billed_plan_value)) pay_via_caption = self.browser.find_element_by_xpath( '//*[@id="admin-portal"]/div/table[1]/tbody/tr[16]/td[1]/strong' ).text pay_via_value = self.browser.find_element_by_xpath( '//*[@id="admin-portal"]/div/table[1]/tbody/tr[16]/td[2]').text self.assertEqual( "Credit Card", pay_via_value, ("Expecting Credit Card but found %s" % pay_via_value))
import unittest from nose.plugins.attrib import attr from selenium.webdriver.common.keys import Keys __author__ = 'farooque' from src import baseTest from src import clogger from src import config logger = clogger.setup_custom_logger(__name__) page_url = config.CliConfig().common.url + "/account/billing" class BillingSuite(baseTest.CrittercismTestCase): @classmethod def setUpClass(cls): super(BillingSuite, cls).setUpClass() pass def setUp(self): self.browser.get(page_url) pass @attr(genre="billing", smoke=True) def test_billing_page(self): self.assertFalse(self.is_url_broken(link=page_url), " Oops page was found at " + page_url)
def setUpClass(cls): cls.config = config.CliConfig() logger.debug("SetupCLass for BaseTest") Initialization()
import random from selenium.webdriver.common.by import By import unittest2 as unittest from nose.plugins.attrib import attr from src import clogger from src import baseTest from src.page_helpers import team from src import config __author__ = 'farooque' page_url = config.CliConfig().common.url + "/developers/register-application" #app_name = "TiborTestAPP" app_name = "IOS-" + str(random.random()) logger = clogger.setup_custom_logger(__name__) class UploadDSymSuite(baseTest.CrittercismTestCase): @classmethod def setUpClass(cls): super(UploadDSymSuite, cls).setUpClass() pass def setUp(self): self.browser.get(page_url) self.browser.find_element_by_id("app-name").send_keys(app_name)
import unittest from nose.plugins.attrib import attr __author__ = 'farooque' from src import baseTest from src import config page_url = config.CliConfig( ).common.url + '/developers/network/52fb0fdb8b2e3365c6000008/location/world/service/youtube/latency' class NetworkTestSuite(baseTest.CrittercismTestCase): @classmethod def setUpClass(cls): super(NetworkTestSuite, cls).setUpClass() def setUp(self): self.browser.get(self.config.common.url + "/developers/register_application") @attr(genre='latency-check') def test_verify_new_app_page_default_parameter_platform(self): __name__ + """[Test] Find all Broken Links from Developers landing page """ pass if __name__ == '__main__': unittest.main(verbosity=2)
import time import unittest2 as unittest import nose.plugins.attrib from selenium.webdriver.common.by import By from src import baseTest from src import clogger from src import config from src.page_helpers import utils logger = clogger.setup_custom_logger(__name__) __author__ = 'farooque' page_url = config.CliConfig().common.url + "/developers/logout" class LoginPageSuite(baseTest.SeleniumTestCase): #TODO: Move this to Utils or BaseClass and combine into one function from team.py def wait_for_password_reset_email(self): counter = 0 utils.login_to_yahoo(browser=self.browser) while counter < 10: if self.browser.find_elements_by_xpath( '//*[contains(text(),"Reset Your Password")]').__len__(): self.browser.find_element_by_xpath( '//*[contains(text(),"Reset Your Password")]').click() time.sleep(5) self.assertFalse(
def test_broken_links_developers_page(self): __name__ + """ [Test] Find all Broken Links from Developers landing page """ page_url = config.CliConfig().common.url + "/developers/" self.browser.get(page_url) self.assert_on_broken_links()