From 9ed0df26fb56d7e784eb5a7ee03bb065eed1fef0 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 17 Oct 2024 14:42:28 +0100 Subject: bitbake: toaster/tests/functional: Tweak the project creation function for better reuse Tweak the function name and return the created project ID. Allow the release_name test to be skipped with a value of None. Add an extra wait call to ensure the create project button is ready before clicking it. (Bitbake rev: d20c6e3c67298c5db33b220a2e4a554e6f2c4418) Signed-off-by: Richard Purdie --- .../lib/toaster/tests/functional/functional_helpers.py | 18 +++++++++++++----- .../tests/functional/test_create_new_project.py | 8 ++++---- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'bitbake/lib/toaster') diff --git a/bitbake/lib/toaster/tests/functional/functional_helpers.py b/bitbake/lib/toaster/tests/functional/functional_helpers.py index d3e38b658b..cc508e98d9 100644 --- a/bitbake/lib/toaster/tests/functional/functional_helpers.py +++ b/bitbake/lib/toaster/tests/functional/functional_helpers.py @@ -140,7 +140,7 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase): return False return element - def _create_test_new_project( + def create_new_project( self, project_name, release, @@ -183,6 +183,8 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase): if checkbox.is_selected(): checkbox.click() + self.wait_until_clickable('#create-project-button') + self.driver.find_element(By.ID, "create-project-button").click() element = self.wait_until_visible('#project-created-notification', poll=3) @@ -200,11 +202,17 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase): data = req.json() self.assertGreater(len(data['results']), 0, f"New project:{project_name} not found in database") + project_id = data['results'][0]['id'] + + self.wait_until_visible('#project-release-title') + # check release - self.assertTrue(re.search( - release_title, - self.driver.find_element(By.XPATH, + if release_title is not None: + self.assertTrue(re.search( + release_title, + self.driver.find_element(By.XPATH, "//span[@id='project-release-title']" ).text), - 'The project release is not defined') + 'The project release is not defined') + return project_id diff --git a/bitbake/lib/toaster/tests/functional/test_create_new_project.py b/bitbake/lib/toaster/tests/functional/test_create_new_project.py index 168a396717..342e008f55 100644 --- a/bitbake/lib/toaster/tests/functional/test_create_new_project.py +++ b/bitbake/lib/toaster/tests/functional/test_create_new_project.py @@ -24,7 +24,7 @@ class TestCreateNewProject(SeleniumFunctionalTestCase): release = '3' release_title = 'Yocto Project master' project_name = 'projectmaster' - self._create_test_new_project( + self.create_new_project( project_name, release, release_title, @@ -40,7 +40,7 @@ class TestCreateNewProject(SeleniumFunctionalTestCase): release = '1' release_title = 'Yocto Project 5.0 "Scarthgap"' project_name = 'projectscarthgap' - self._create_test_new_project( + self.create_new_project( project_name, release, release_title, @@ -56,7 +56,7 @@ class TestCreateNewProject(SeleniumFunctionalTestCase): release = '5' release_title = 'Yocto Project 4.0 "Kirkstone"' project_name = 'projectkirkstone' - self._create_test_new_project( + self.create_new_project( project_name, release, release_title, @@ -72,7 +72,7 @@ class TestCreateNewProject(SeleniumFunctionalTestCase): release = '2' release_title = 'Local Yocto Project' project_name = 'projectlocal' - self._create_test_new_project( + self.create_new_project( project_name, release, release_title, -- cgit v1.2.3-54-g00ecf