def setUp(self): # noqa """We do want a new browser instance for every test.""" if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get(get_server_url()) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.compute_resource = ComputeResource(self.browser) self.configgroups = ConfigGroups(self.browser) self.contentenv = ContentEnvironment(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hardwaremodel = HardwareModel(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.puppetclasses = PuppetClasses(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.settings = Settings(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser)
def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get(get_server_url()) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.compute_resource = ComputeResource(self.browser) self.configgroups = ConfigGroups(self.browser) self.contentenv = ContentEnvironment(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hardwaremodel = HardwareModel(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.puppetclasses = PuppetClasses(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.settings = Settings(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser)
def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get("https://" + self.host) # Library methods self.login = Login(self.browser) self.navigator = Navigator(self.browser) self.product = Product(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.environment = Environment(self.browser) self.architecture = Architecture(self.browser) self.medium = Medium(self.browser) self.hosts = Hosts(self.browser) self.hostgroup = Hostgroup(self.browser) self.domain = Domain(self.browser) self.subnet = Subnet(self.browser) self.compute_resource = ComputeResource(self.browser) self.template = Template(self.browser) self.partitiontable = PartitionTable(self.browser)
class BaseUI(unittest.TestCase): """ Base class for all UI tests. """ @classmethod def setUpClass(cls): """ Make sure that we only read configuration values once. """ cls.host = conf.properties['main.server.hostname'] cls.port = conf.properties['main.server.port'] cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['nosetests.verbosity']) cls.remote = int(conf.properties['main.remote']) cls.logger = logging.getLogger("robottelo") def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get("https://%s:%s" % (self.host, self.port)) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.contentenv = ContentEnvironment(self.browser) self.compute_resource = ComputeResource(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser) def tearDown(self): """ Make sure to close the browser after each test. """ self.browser.quit() self.browser = None
class UITestCase(TestCase): """Test case for UI tests.""" @classmethod def setUpClass(cls): """ Make sure that we only read configuration values once. """ super(UITestCase, cls).setUpClass() cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['nosetests.verbosity']) cls.remote = int(conf.properties['main.remote']) if int(conf.properties.get('main.virtual_display', '0')): # Import from optional requirements from pyvirtualdisplay import Display from easyprocess import EasyProcess, EasyProcessError cls.display = Display(size=(1024, 768)) cls.display.start() window_manager_cmd = conf.properties.get( 'main.window_manager_command', '') try: cls.window_manager = EasyProcess(window_manager_cmd) cls.window_manager.start() except EasyProcessError as err: cls.window_manager = None cls.logger.warning( 'Window manager could not be started. ' 'Command: "%s". Error: %s', window_manager_cmd, err ) else: cls.display = None def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get(get_server_url()) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.compute_resource = ComputeResource(self.browser) self.configgroups = ConfigGroups(self.browser) self.contentenv = ContentEnvironment(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hardwaremodel = HardwareModel(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.puppetclasses = PuppetClasses(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.settings = Settings(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser) def tearDown(self): """ Make sure to close the browser after each test. """ self.browser.quit() self.browser = None @classmethod def tearDownClass(cls): if cls.display is not None: if (cls.window_manager is not None and cls.window_manager.is_started): cls.window_manager.stop() cls.display.stop()
class UITestCase(TestCase): """Test case for UI tests.""" @classmethod def setUpClass(cls): # noqa """Make sure that we only read configuration values once.""" super(UITestCase, cls).setUpClass() cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['main.verbosity']) cls.remote = int(conf.properties['main.remote']) cls.server_name = conf.properties.get('main.server.hostname') cls.screenshots_dir = conf.properties.get('main.screenshots.base_path') if int(conf.properties.get('main.virtual_display', '0')): # Import from optional requirements from pyvirtualdisplay import Display from easyprocess import EasyProcess, EasyProcessError cls.display = Display(size=(1920, 1080)) cls.display.start() cls.logger.debug( 'Virtual display started (pid=%d, display="%s")', cls.display.pid, cls.display.display ) window_manager_cmd = conf.properties.get( 'main.window_manager_command', '') try: cls.window_manager = EasyProcess(window_manager_cmd) cls.window_manager.start() cls.logger.debug( 'Window manager started (pid=%d, cmd="%s")', cls.window_manager.pid, cls.window_manager.cmd_as_string ) except EasyProcessError as err: cls.window_manager = None cls.logger.warning( 'Window manager could not be started. ' 'Command: "%s". Error: %s', window_manager_cmd, err ) else: cls.display = None def setUp(self): # noqa """We do want a new browser instance for every test.""" if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get(get_server_url()) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.compute_profile = ComputeProfile(self.browser) self.compute_resource = ComputeResource(self.browser) self.configgroups = ConfigGroups(self.browser) self.contentenv = ContentEnvironment(self.browser) self.content_views = ContentViews(self.browser) self.content_search = ContentSearch(self.browser) self.domain = Domain(self.browser) self.discoveryrules = DiscoveryRules(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hardwaremodel = HardwareModel(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.ldapauthsource = LdapAuthSource(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.puppetclasses = PuppetClasses(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.rhai = RHAI(self.browser) self.role = Role(self.browser) self.settings = Settings(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.trend = Trend(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser) def take_screenshot(self, testmethodname): """Takes screenshot of the UI and saves it to the disk by creating a directory same as that of the test method name. """ # testmethodname varies so trying to handle various scenarios. # pop depending on ddt, normal test or ddt's 1st job. # For ddt tests with maps. if "___" in testmethodname: parts = testmethodname.split("___") # For ddt tests with utf8, html, etc. elif "__" in testmethodname: parts = testmethodname.split("__") # For ddt test with alpha, numeric, etc. else: testmethodname = testmethodname.split('_') # Do Nothing for Non DDT Tests. if len(testmethodname[-2]) == 1: for _ in range(2): testmethodname.pop() if "___" in testmethodname or "__" in testmethodname: testmethodname = parts[0] testmethodname = testmethodname.split('_') testmethodname.pop() testmethodname = "_".join(testmethodname) # Creates dir_structure depending upon the testmethodname. directory = testmethodname dir_structure = os.path.join( self.screenshots_dir, datetime.now().strftime('%Y-%m-%d'), directory, ) if not os.path.exists(dir_structure): os.makedirs(dir_structure) filename = 'screenshot-{0}.png'.format( datetime.now().strftime('%Y-%m-%d_%H_%M_%S') ) self.browser.save_screenshot(os.path.join(dir_structure, filename)) def tearDown(self): # noqa """Make sure to close the browser after each test.""" if sys.exc_info()[0] is not None: self.take_screenshot(self._testMethodName) self.browser.quit() self.browser = None @classmethod def tearDownClass(cls): # noqa if cls.display is not None: if (cls.window_manager is not None and cls.window_manager.is_started): cls.logger.debug( 'Killing window manager (pid=%d, cmd="%s")', cls.window_manager.pid, cls.window_manager.cmd_as_string ) os.kill(cls.window_manager.pid, signal.SIGKILL) _, return_code = os.waitpid(cls.window_manager.pid, 0) cls.logger.debug( 'Window manager killed (pid=%d, cmd="%s", rcode=%d)', cls.window_manager.pid, cls.window_manager.cmd_as_string, return_code ) cls.logger.debug( 'Stopping virtual display (pid=%d, display="%s"', cls.display.pid, cls.display.display ) cls.display.stop() cls.logger.debug( 'Virtual display stopped (pid=%d, display="%s"', cls.display.pid, cls.display.display )
class BaseUI(unittest.TestCase): """ Base class for all UI tests. """ @classmethod def setUpClass(cls): """ Make sure that we only read configuration values once. """ cls.host = conf.properties['main.server.hostname'] cls.port = conf.properties['main.server.port'] cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['nosetests.verbosity']) cls.remote = int(conf.properties['main.remote']) cls.logger = logging.getLogger("robottelo") def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS(service_args=service_args) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get("https://%s:%s" % (self.host, self.port)) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.contentenv = ContentEnvironment(self.browser) self.compute_resource = ComputeResource(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser) def tearDown(self): """ Make sure to close the browser after each test. """ self.browser.quit() self.browser = None
class UITestCase(TestCase): """Test case for UI tests.""" @classmethod def setUpClass(cls): # noqa """Make sure that we only read configuration values once.""" super(UITestCase, cls).setUpClass() cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['main.verbosity']) cls.remote = int(conf.properties['main.remote']) cls.server_name = conf.properties.get('main.server.hostname') cls.screenshots_dir = conf.properties.get('main.screenshots.base_path') if int(conf.properties.get('main.virtual_display', '0')): # Import from optional requirements from pyvirtualdisplay import Display from easyprocess import EasyProcess, EasyProcessError cls.display = Display(size=(1920, 1080)) cls.display.start() cls.logger.debug( 'Virtual display started (pid=%d, display="%s")', cls.display.pid, cls.display.display ) window_manager_cmd = conf.properties.get( 'main.window_manager_command', '') try: cls.window_manager = EasyProcess(window_manager_cmd) cls.window_manager.start() cls.logger.debug( 'Window manager started (pid=%d, cmd="%s")', cls.window_manager.pid, cls.window_manager.cmd_as_string ) except EasyProcessError as err: cls.window_manager = None cls.logger.warning( 'Window manager could not be started. ' 'Command: "%s". Error: %s', window_manager_cmd, err ) else: cls.display = None def setUp(self): # noqa """We do want a new browser instance for every test.""" if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() elif self.driver_name.lower() == 'phantomjs': service_args = ['--ignore-ssl-errors=true'] self.browser = webdriver.PhantomJS( service_args=service_args ) else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get(get_server_url()) # Library methods self.activationkey = ActivationKey(self.browser) self.architecture = Architecture(self.browser) self.compute_resource = ComputeResource(self.browser) self.configgroups = ConfigGroups(self.browser) self.contentenv = ContentEnvironment(self.browser) self.content_views = ContentViews(self.browser) self.domain = Domain(self.browser) self.environment = Environment(self.browser) self.gpgkey = GPGKey(self.browser) self.hardwaremodel = HardwareModel(self.browser) self.hostgroup = Hostgroup(self.browser) self.hosts = Hosts(self.browser) self.location = Location(self.browser) self.login = Login(self.browser) self.medium = Medium(self.browser) self.navigator = Navigator(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.org = Org(self.browser) self.partitiontable = PartitionTable(self.browser) self.puppetclasses = PuppetClasses(self.browser) self.products = Products(self.browser) self.repository = Repos(self.browser) self.role = Role(self.browser) self.settings = Settings(self.browser) self.subnet = Subnet(self.browser) self.subscriptions = Subscriptions(self.browser) self.sync = Sync(self.browser) self.syncplan = Syncplan(self.browser) self.systemgroup = SystemGroup(self.browser) self.template = Template(self.browser) self.user = User(self.browser) self.usergroup = UserGroup(self.browser) def take_screenshot(self, testmethodname): """Takes screenshot of the UI and saves it to the disk by creating a directory same as that of the test method name.""" # testmethodname varies so trying to handle various scenarios. # pop depending on ddt, normal test or ddt's 1st job. # For ddt tests with maps. if "___" in testmethodname: parts = testmethodname.split("___") # For ddt tests with utf8, html, etc. elif "__" in testmethodname: parts = testmethodname.split("__") # For ddt test with alpha, numeric, etc. else: testmethodname = testmethodname.split('_') # Do Nothing for Non DDT Tests. if len(testmethodname[-2]) == 1: for _ in range(2): testmethodname.pop() if "___" in testmethodname or "__" in testmethodname: testmethodname = parts[0] testmethodname = testmethodname.split('_') testmethodname.pop() testmethodname = "_".join(testmethodname) # Creates dir_structure depending upon the testmethodname. directory = testmethodname dir_structure = os.path.join( self.screenshots_dir, datetime.now().strftime('%Y-%m-%d'), directory, ) if not os.path.exists(dir_structure): os.makedirs(dir_structure) filename = 'screenshot-{0}.png'.format( datetime.now().strftime('%Y-%m-%d_%H_%M_%S') ) self.browser.save_screenshot(os.path.join(dir_structure, filename)) def tearDown(self): # noqa """Make sure to close the browser after each test.""" if sys.exc_info()[0] is not None: self.take_screenshot(self._testMethodName) self.browser.quit() self.browser = None @classmethod def tearDownClass(cls): # noqa if cls.display is not None: if (cls.window_manager is not None and cls.window_manager.is_started): cls.logger.debug( 'Killing window manager (pid=%d, cmd="%s")', cls.window_manager.pid, cls.window_manager.cmd_as_string ) os.kill(cls.window_manager.pid, signal.SIGKILL) _, return_code = os.waitpid(cls.window_manager.pid, 0) cls.logger.debug( 'Window manager killed (pid=%d, cmd="%s", rcode=%d)', cls.window_manager.pid, cls.window_manager.cmd_as_string, return_code ) cls.logger.debug( 'Stopping virtual display (pid=%d, display="%s"', cls.display.pid, cls.display.display ) cls.display.stop() cls.logger.debug( 'Virtual display stopped (pid=%d, display="%s"', cls.display.pid, cls.display.display )
class BaseUI(unittest.TestCase): """ Base class for all UI tests. """ @classmethod def setUpClass(cls): """ Make sure that we only read configuration values once. """ cls.host = conf.properties['main.server.hostname'] cls.katello_user = conf.properties['foreman.admin.username'] cls.katello_passwd = conf.properties['foreman.admin.password'] cls.driver_name = conf.properties['saucelabs.driver'] cls.locale = conf.properties['main.locale'] cls.verbosity = int(conf.properties['nosetests.verbosity']) cls.remote = int(conf.properties['main.remote']) cls.logger = logging.getLogger("robottelo") cls.logger.setLevel(cls.verbosity * 10) def setUp(self): """ We do want a new browser instance for every test. """ if not self.remote: if self.driver_name.lower() == 'firefox': self.browser = webdriver.Firefox() elif self.driver_name.lower() == 'chrome': self.browser = webdriver.Chrome() elif self.driver_name.lower() == 'ie': self.browser = webdriver.Ie() else: self.browser = webdriver.Remote() else: self.browser = SeleniumFactory().createWebDriver( job_name=self.id(), show_session_id=True) self.browser.maximize_window() self.browser.get("https://" + self.host) # Library methods self.login = Login(self.browser) self.navigator = Navigator(self.browser) self.product = Product(self.browser) self.user = User(self.browser) self.operatingsys = OperatingSys(self.browser) self.environment = Environment(self.browser) self.architecture = Architecture(self.browser) self.medium = Medium(self.browser) self.hosts = Hosts(self.browser) self.hostgroup = Hostgroup(self.browser) self.domain = Domain(self.browser) self.subnet = Subnet(self.browser) self.compute_resource = ComputeResource(self.browser) self.template = Template(self.browser) self.partitiontable = PartitionTable(self.browser) def tearDown(self): """ Make sure to close the browser after each test. """ self.browser.quit() self.browser = None