[bitbake-devel] [[RFC][PATCH] 4/8] toaster/tests: Adds setup test case.

Aníbal Limón anibal.limon at linux.intel.com
Tue Feb 23 00:51:54 UTC 2016


The setup test case is responsible to leave toaster in certain
state for execute ui tests now it creates selenium-project and
builds core-image-{minimal, sato} images.

Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
 lib/toaster/tests/setup.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)
 create mode 100644 lib/toaster/tests/setup.py

diff --git a/lib/toaster/tests/setup.py b/lib/toaster/tests/setup.py
new file mode 100644
index 0000000..0acbb16
--- /dev/null
+++ b/lib/toaster/tests/setup.py
@@ -0,0 +1,77 @@
+import time
+
+from selenium import webdriver
+from selenium.common.exceptions import NoSuchElementException
+from selenium import selenium
+from selenium.webdriver.common.by import By
+from selenium.webdriver.common.keys import Keys
+from selenium.webdriver.support.ui import Select
+
+from toaster.tests.base import ToasterTestCase
+
+class ToasterSetupTestCase(ToasterTestCase):
+    def setUp(self):
+        self.driver = webdriver.Firefox()
+
+    def tearDown(self):
+        self.driver.close()
+
+    def is_text_present (self, patterns):
+        for pattern in patterns:
+            if str(pattern) not in self.driver.page_source:
+                self.logger.debug(pattern)
+                return False
+        return True
+
+    def test_setupToaster(self):
+        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:
+            self.driver.find_element_by_link_text("selenium-project").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()
+        time.sleep(5)
+
+        #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)
+
+        #go back to the main project page
+        self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click()
+        time.sleep(5)
+        self.driver.find_element_by_link_text("selenium-project").click()
+        time.sleep(5)
+
+        #move to all builds page
+        self.driver.find_element_by_css_selector("a[href='/toastergui/builds/']").click()
+        self.driver.refresh()
+        time.sleep(5)
+
+        #check progress bar is displayed to signal a build has started
+        try:
+            while (self.driver.find_element_by_xpath("//div[@class='progress']").is_displayed()):
+                self.logger.info('Builds are running ...')
+                self.driver.refresh()
+                time.sleep(15)
+        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!")
+        else:
+            self.fail(msg="Builds did not complete successfully.")
-- 
2.1.4




More information about the bitbake-devel mailing list