aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tests/functional/functional_helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tests/functional/functional_helpers.py')
-rw-r--r--lib/tests/functional/functional_helpers.py122
1 files changed, 0 insertions, 122 deletions
diff --git a/lib/tests/functional/functional_helpers.py b/lib/tests/functional/functional_helpers.py
deleted file mode 100644
index 486078a6..00000000
--- a/lib/tests/functional/functional_helpers.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#! /usr/bin/env python
-# ex:ts=4:sw=4:sts=4:et
-# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
-#
-# BitBake Toaster functional tests implementation
-#
-# Copyright (C) 2017 Intel Corporation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import os
-import logging
-import subprocess
-import signal
-import time
-import re
-
-from tests.browser.selenium_helpers_base import SeleniumTestCaseBase
-from tests.builds.buildtest import load_build_environment
-
-logger = logging.getLogger("toaster")
-
-class SeleniumFunctionalTestCase(SeleniumTestCaseBase):
- wait_toaster_time = 5
-
- @classmethod
- def setUpClass(cls):
- # So that the buildinfo helper uses the test database'
- if os.environ.get('DJANGO_SETTINGS_MODULE', '') != \
- 'toastermain.settings_test':
- raise RuntimeError("Please initialise django with the tests settings: " \
- "DJANGO_SETTINGS_MODULE='toastermain.settings_test'")
-
- load_build_environment()
-
- # start toaster
- cmd = "bash -c 'source toaster start'"
- p = subprocess.Popen(
- cmd,
- cwd=os.environ.get("BUILDDIR"),
- shell=True)
- if p.wait() != 0:
- raise RuntimeError("Can't initialize toaster")
-
- super(SeleniumFunctionalTestCase, cls).setUpClass()
- cls.live_server_url = 'http://localhost:8000/'
-
- @classmethod
- def tearDownClass(cls):
- super(SeleniumFunctionalTestCase, cls).tearDownClass()
-
- # XXX: source toaster stop gets blocked, to review why?
- # from now send SIGTERM by hand
- time.sleep(cls.wait_toaster_time)
- builddir = os.environ.get("BUILDDIR")
-
- with open(os.path.join(builddir, '.toastermain.pid'), 'r') as f:
- toastermain_pid = int(f.read())
- os.kill(toastermain_pid, signal.SIGTERM)
- with open(os.path.join(builddir, '.runbuilds.pid'), 'r') as f:
- runbuilds_pid = int(f.read())
- os.kill(runbuilds_pid, signal.SIGTERM)
-
-
- def get_URL(self):
- rc=self.get_page_source()
- project_url=re.search("(projectPageUrl\s:\s\")(.*)(\",)",rc)
- return project_url.group(2)
-
-
- def find_element_by_link_text_in_table(self, table_id, link_text):
- """
- Assume there're multiple suitable "find_element_by_link_text".
- In this circumstance we need to specify "table".
- """
- try:
- table_element = self.get_table_element(table_id)
- element = table_element.find_element_by_link_text(link_text)
- except NoSuchElementException as e:
- print('no element found')
- raise
- return element
-
- def get_table_element(self, table_id, *coordinate):
- if len(coordinate) == 0:
-#return whole-table element
- element_xpath = "//*[@id='" + table_id + "']"
- try:
- element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException as e:
- raise
- return element
- row = coordinate[0]
-
- if len(coordinate) == 1:
-#return whole-row element
- element_xpath = "//*[@id='" + table_id + "']/tbody/tr[" + str(row) + "]"
- try:
- element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException as e:
- return False
- return element
-#now we are looking for an element with specified X and Y
- column = coordinate[1]
-
- element_xpath = "//*[@id='" + table_id + "']/tbody/tr[" + str(row) + "]/td[" + str(column) + "]"
- try:
- element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException as e:
- return False
- return element