diff options
-rwxr-xr-x | bitbake/lib/toaster/tests/helpers.py | 5 | ||||
-rw-r--r-- | bitbake/lib/toaster/tests/setup.py | 54 | ||||
-rw-r--r-- | bitbake/lib/toaster/tests/toaster_test.cfg | 2 |
3 files changed, 34 insertions, 27 deletions
diff --git a/bitbake/lib/toaster/tests/helpers.py b/bitbake/lib/toaster/tests/helpers.py index ed152b202ce..ad196594a07 100755 --- a/bitbake/lib/toaster/tests/helpers.py +++ b/bitbake/lib/toaster/tests/helpers.py @@ -118,6 +118,7 @@ class ToasterHelper(object): for pid in pids: try: + print "killing ",pid os.kill(pid, signal.SIGKILL) except: pass @@ -126,7 +127,7 @@ class ToasterHelper(object): def stop(self, force=False): """ - The stop method have force mode because toaster without production + The stop method have force mode because toaster without production setup have known issues when is on load, the server response 503 service unavailable. """ @@ -187,6 +188,6 @@ if __name__ == "__main__": except IOError as e: if args.action == 'clone': print "ERROR: Directory exists: %s" % args.work_directory - raise + raise sys.exit(0) diff --git a/bitbake/lib/toaster/tests/setup.py b/bitbake/lib/toaster/tests/setup.py index 725e858e66e..0d9a9937a22 100644 --- a/bitbake/lib/toaster/tests/setup.py +++ b/bitbake/lib/toaster/tests/setup.py @@ -29,10 +29,12 @@ from toaster.tests.base import ToasterTestCase class ToasterSetupTestCase(ToasterTestCase): def setUp(self): self.driver = webdriver.Firefox() - + self.delayTime=5 def tearDown(self): self.driver.close() + def delay(self): + time.sleep(self.delayTime) def is_text_present (self, patterns): for pattern in patterns: if str(pattern) not in self.driver.page_source: @@ -41,54 +43,58 @@ class ToasterSetupTestCase(ToasterTestCase): return True def test_setupToaster(self): - self.driver.maximize_window() + #self.driver.maximize_window() self.driver.get(self.opts.toaster_url) - try: - self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click() - except: - self.driver.find_element_by_id("new-project-button").click() - self.driver.find_element_by_id("new-project-name").send_keys("selenium-project") - self.driver.find_element_by_id("create-project-button").click() try: + #go back to the main project page + self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click() + self.delay() self.driver.find_element_by_link_text("selenium-project").click() + return except: self.driver.find_element_by_id("new-project-button").click() self.driver.find_element_by_id("new-project-name").send_keys("selenium-project") self.driver.find_element_by_id("create-project-button").click() time.sleep(5) + self.buildImage("core-image-minimal") + self.buildImage("core-image-sato") - #queue up a core-image-minimal - self.driver.find_element_by_id("build-input").send_keys("core-image-minimal") - self.driver.find_element_by_id("build-button").click() - time.sleep(5) - #queue up a core-image-sato - self.driver.find_element_by_id("build-input").send_keys("core-image-sato") - self.driver.find_element_by_id("build-button").click() - time.sleep(5) - + def buildImage(self,name): #go back to the main project page self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click() - time.sleep(5) + self.delay() self.driver.find_element_by_link_text("selenium-project").click() - time.sleep(5) - + self.delay() + self.driver.find_element_by_id("build-input").send_keys(name) + self.driver.find_element_by_id("build-button").click() + self.delay() + self.isBuildFinished() + def isBuildFinished(self): + TIMEOUT=15*60 #move to all builds page - self.driver.find_element_by_css_selector("a[href='/toastergui/builds/']").click() - self.driver.refresh() + print "BUILDS" + #self.driver.find_element_by_css_selector("a[href='/toastergui/builds/']").click() + self.driver.find_element_by_link_text("All builds").click() time.sleep(5) #check progress bar is displayed to signal a build has started try: + totalTime=0 while (self.driver.find_element_by_xpath("//div[@class='progress']").is_displayed()): - self.logger.info('Builds are running ...') + self.logger.error('Builds are running ...') + self.driver.refresh() time.sleep(15) + totalTime+=15 + # if it's running too long the sstate may be out of sync in which case we are doomed on Travis + if totalTime> TIMEOUT: + break except: pass self.logger.info("Looking for successful build...") if (self.driver.find_element_by_xpath("//div[@class='alert build-result alert-success project-name']").is_displayed()): - self.logger.info("Builds complete!") + self.logger.error("Builds complete!") else: self.fail(msg="Builds did not complete successfully.") diff --git a/bitbake/lib/toaster/tests/toaster_test.cfg b/bitbake/lib/toaster/tests/toaster_test.cfg index 6acd1666dbd..1b59c2d7d3d 100644 --- a/bitbake/lib/toaster/tests/toaster_test.cfg +++ b/bitbake/lib/toaster/tests/toaster_test.cfg @@ -8,7 +8,7 @@ [toaster_test_linux] toaster_url = 'http://localhost:8000' test_browser = 'firefox' -test_cases = [946] +test_cases = [911,912,913] logging_level = 'INFO' |