summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2024-10-18 22:31:53 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-10-24 11:24:03 +0100
commit210417d0f434966c75eb2f03985471c504fb42f9 (patch)
tree0918d2ec2286c7f1e3e39fe0a8d65375ca724515 /bitbake/lib
parentfa56ea47b17a9416c3d0a4fe95594d16e5f3130b (diff)
downloadpoky-210417d0f434966c75eb2f03985471c504fb42f9.tar.gz
bitbake: toaster/tests/functiona/project_page: Improve waits and drop polling
These changes: * Drop the poll parameters * Add waits where needed or make them more specific * Add calls to close notification boxes since they can obscure other page elements * In one case wait for a "Loading" message to be replaced (Bitbake rev: 2bde969486a4761fa0e6f9590c9fa08d385666b1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/toaster/tests/functional/test_project_page.py53
1 files changed, 40 insertions, 13 deletions
diff --git a/bitbake/lib/toaster/tests/functional/test_project_page.py b/bitbake/lib/toaster/tests/functional/test_project_page.py
index 7e73cac438..f34ccf5e8e 100644
--- a/bitbake/lib/toaster/tests/functional/test_project_page.py
+++ b/bitbake/lib/toaster/tests/functional/test_project_page.py
@@ -8,6 +8,7 @@
8 8
9import os 9import os
10import string 10import string
11import time
11from unittest import skip 12from unittest import skip
12import pytest 13import pytest
13from django.urls import reverse 14from django.urls import reverse
@@ -150,7 +151,7 @@ class TestProjectPageBase(SeleniumFunctionalTestCase):
150 def test_show_rows(row_to_show, show_row_link): 151 def test_show_rows(row_to_show, show_row_link):
151 # Check that we can show rows == row_to_show 152 # Check that we can show rows == row_to_show
152 show_row_link.select_by_value(str(row_to_show)) 153 show_row_link.select_by_value(str(row_to_show))
153 self.wait_until_visible(f'#{table_selector} tbody tr', poll=3) 154 self.wait_until_visible(f'#{table_selector} tbody tr')
154 # check at least some rows are visible 155 # check at least some rows are visible
155 self.assertTrue( 156 self.assertTrue(
156 len(self.find_all(f'#{table_selector} tbody tr')) > 0 157 len(self.find_all(f'#{table_selector} tbody tr')) > 0
@@ -359,11 +360,15 @@ class TestProjectPage(TestProjectPageBase):
359 search_box.send_keys('core-image-minimal') 360 search_box.send_keys('core-image-minimal')
360 self.find('#build-button').click() 361 self.find('#build-button').click()
361 self.wait_until_visible('#latest-builds') 362 self.wait_until_visible('#latest-builds')
362 lastest_builds = self.driver.find_elements( 363 buildtext = "Loading"
363 By.XPATH, 364 while "Loading" in buildtext:
364 '//div[@id="latest-builds"]', 365 time.sleep(1)
365 ) 366 lastest_builds = self.driver.find_elements(
366 last_build = lastest_builds[0] 367 By.XPATH,
368 '//div[@id="latest-builds"]',
369 )
370 last_build = lastest_builds[0]
371 buildtext = last_build.text
367 self.assertIn( 372 self.assertIn(
368 'core-image-minimal', str(last_build.text) 373 'core-image-minimal', str(last_build.text)
369 ) 374 )
@@ -471,7 +476,8 @@ class TestProjectPage(TestProjectPageBase):
471 searchBtn_selector='search-submit-machinestable', 476 searchBtn_selector='search-submit-machinestable',
472 table_selector='machinestable' 477 table_selector='machinestable'
473 ) 478 )
474 self.wait_until_visible('#machinestable tbody tr', poll=3) 479
480 self.wait_until_visible('#machinestable tbody tr')
475 rows = self.find_all('#machinestable tbody tr') 481 rows = self.find_all('#machinestable tbody tr')
476 machine_to_add = rows[0] 482 machine_to_add = rows[0]
477 add_btn = machine_to_add.find_element(By.XPATH, '//td[@class="add-del-layers"]') 483 add_btn = machine_to_add.find_element(By.XPATH, '//td[@class="add-del-layers"]')
@@ -481,6 +487,11 @@ class TestProjectPage(TestProjectPageBase):
481 self.assertIn( 487 self.assertIn(
482 f'You have added 1 layer to your project', str(change_notification.text) 488 f'You have added 1 layer to your project', str(change_notification.text)
483 ) 489 )
490
491 hide_button = self.find('#hide-alert')
492 hide_button.click()
493 self.wait_until_not_visible('#change-notification')
494
484 # check Machine table feature(show/hide column, pagination) 495 # check Machine table feature(show/hide column, pagination)
485 self._navigate_to_config_nav('machinestable', 5) 496 self._navigate_to_config_nav('machinestable', 5)
486 column_list = [ 497 column_list = [
@@ -521,7 +532,7 @@ class TestProjectPage(TestProjectPageBase):
521 table_selector='layerstable' 532 table_selector='layerstable'
522 ) 533 )
523 # check "Add layer" button works 534 # check "Add layer" button works
524 self.wait_until_visible('#layerstable tbody tr', poll=3) 535 self.wait_until_visible('#layerstable tbody tr')
525 rows = self.find_all('#layerstable tbody tr') 536 rows = self.find_all('#layerstable tbody tr')
526 layer_to_add = rows[0] 537 layer_to_add = rows[0]
527 add_btn = layer_to_add.find_element( 538 add_btn = layer_to_add.find_element(
@@ -530,7 +541,7 @@ class TestProjectPage(TestProjectPageBase):
530 ) 541 )
531 add_btn.click() 542 add_btn.click()
532 # check modal is displayed 543 # check modal is displayed
533 self.wait_until_visible('#dependencies-modal', poll=3) 544 self.wait_until_visible('#dependencies-modal')
534 list_dependencies = self.find_all('#dependencies-list li') 545 list_dependencies = self.find_all('#dependencies-list li')
535 # click on add-layers button 546 # click on add-layers button
536 add_layers_btn = self.driver.find_element( 547 add_layers_btn = self.driver.find_element(
@@ -543,8 +554,13 @@ class TestProjectPage(TestProjectPageBase):
543 self.assertIn( 554 self.assertIn(
544 f'You have added {len(list_dependencies)+1} layers to your project: {input_text} and its dependencies', str(change_notification.text) 555 f'You have added {len(list_dependencies)+1} layers to your project: {input_text} and its dependencies', str(change_notification.text)
545 ) 556 )
557
558 hide_button = self.find('#hide-alert')
559 hide_button.click()
560 self.wait_until_not_visible('#change-notification')
561
546 # check "Remove layer" button works 562 # check "Remove layer" button works
547 self.wait_until_visible('#layerstable tbody tr', poll=3) 563 self.wait_until_visible('#layerstable tbody tr')
548 rows = self.find_all('#layerstable tbody tr') 564 rows = self.find_all('#layerstable tbody tr')
549 layer_to_remove = rows[0] 565 layer_to_remove = rows[0]
550 remove_btn = layer_to_remove.find_element( 566 remove_btn = layer_to_remove.find_element(
@@ -552,11 +568,16 @@ class TestProjectPage(TestProjectPageBase):
552 '//td[@class="add-del-layers"]' 568 '//td[@class="add-del-layers"]'
553 ) 569 )
554 remove_btn.click() 570 remove_btn.click()
555 self.wait_until_visible('#change-notification', poll=2) 571 self.wait_until_visible('#change-notification')
556 change_notification = self.find('#change-notification') 572 change_notification = self.find('#change-notification')
557 self.assertIn( 573 self.assertIn(
558 f'You have removed 1 layer from your project: {input_text}', str(change_notification.text) 574 f'You have removed 1 layer from your project: {input_text}', str(change_notification.text)
559 ) 575 )
576
577 hide_button = self.find('#hide-alert')
578 hide_button.click()
579 self.wait_until_not_visible('#change-notification')
580
560 # check layers table feature(show/hide column, pagination) 581 # check layers table feature(show/hide column, pagination)
561 self._navigate_to_config_nav('layerstable', 6) 582 self._navigate_to_config_nav('layerstable', 6)
562 column_list = [ 583 column_list = [
@@ -604,7 +625,7 @@ class TestProjectPage(TestProjectPageBase):
604 '//td[@class="add-del-layers"]//a[1]' 625 '//td[@class="add-del-layers"]//a[1]'
605 ) 626 )
606 add_btn.click() 627 add_btn.click()
607 self.wait_until_visible('#change-notification', poll=2) 628 self.wait_until_visible('#change-notification')
608 change_notification = self.find('#change-notification') 629 change_notification = self.find('#change-notification')
609 self.assertIn( 630 self.assertIn(
610 f'You have changed the distro to: {input_text}', str(change_notification.text) 631 f'You have changed the distro to: {input_text}', str(change_notification.text)
@@ -649,12 +670,15 @@ class TestProjectPage(TestProjectPageBase):
649 # check remove layer button works 670 # check remove layer button works
650 remove_layer_btn = self.find('#add-remove-layer-btn') 671 remove_layer_btn = self.find('#add-remove-layer-btn')
651 remove_layer_btn.click() 672 remove_layer_btn.click()
652 self.wait_until_visible('#change-notification', poll=2) 673 self.wait_until_visible('#change-notification')
653 change_notification = self.find('#change-notification') 674 change_notification = self.find('#change-notification')
654 self.assertIn( 675 self.assertIn(
655 f'You have removed 1 layer from your project', str(change_notification.text) 676 f'You have removed 1 layer from your project', str(change_notification.text)
656 ) 677 )
678 hide_button = self.find('#hide-alert')
679 hide_button.click()
657 # check add layer button works 680 # check add layer button works
681 self.wait_until_not_visible('#change-notification')
658 add_layer_btn = self.find('#add-remove-layer-btn') 682 add_layer_btn = self.find('#add-remove-layer-btn')
659 add_layer_btn.click() 683 add_layer_btn.click()
660 self.wait_until_visible('#change-notification') 684 self.wait_until_visible('#change-notification')
@@ -662,6 +686,9 @@ class TestProjectPage(TestProjectPageBase):
662 self.assertIn( 686 self.assertIn(
663 f'You have added 1 layer to your project', str(change_notification.text) 687 f'You have added 1 layer to your project', str(change_notification.text)
664 ) 688 )
689 hide_button = self.find('#hide-alert')
690 hide_button.click()
691 self.wait_until_not_visible('#change-notification')
665 # check tabs(layers, recipes, machines) are displayed 692 # check tabs(layers, recipes, machines) are displayed
666 tabs = self.find_all('.nav-tabs li') 693 tabs = self.find_all('.nav-tabs li')
667 self.assertEqual(len(tabs), 3) 694 self.assertEqual(len(tabs), 3)