Running '. ./init-build-env; ${SCRIPTSDIR}/run-toaster-tests /srv/pokybuild/yocto-worker/toaster/build/build /srv/pokybuild/yocto-worker/toaster/build/build/../layers/bitbake' with output to /srv/pokybuild/yocto-worker/toaster/build/build/command-1-cmds.log in /srv/pokybuild/yocto-worker/toaster/build/build
Poky - The Yocto Project testing distribution
++ realpath /srv/pokybuild/yocto-worker/toaster/build/build
+ builddir=/srv/pokybuild/yocto-worker/toaster/build/build
++ realpath /srv/pokybuild/yocto-worker/toaster/build/build/../layers/bitbake
+ bitbakedir=/srv/pokybuild/yocto-worker/toaster/build/layers/bitbake
+ cd /srv/pokybuild/yocto-worker/toaster/build/build
+ bitbake -e
++ grep '^SSTATE_DIR=' bbenv
++ cut -d = -f2-
++ sed -e 's/^"//' -e 's/"$//'
+ export SSTATE_DIR=/srv/autobuilder/valkyrie.yocto.io/pub/sstate
+ SSTATE_DIR=/srv/autobuilder/valkyrie.yocto.io/pub/sstate
++ grep '^DL_DIR=' bbenv
++ cut -d = -f2-
++ sed -e 's/^"//' -e 's/"$//'
+ export DL_DIR=/srv/autobuilder/valkyrie.yocto.io/current_sources
+ DL_DIR=/srv/autobuilder/valkyrie.yocto.io/current_sources
++ grep '^BB_HASHSERVE=' bbenv
++ cut -d = -f2-
++ sed -e 's/^"//' -e 's/"$//'
+ export BB_HASHSERVE=wss://hashserv-eu.yoctoproject.org/ws
+ BB_HASHSERVE=wss://hashserv-eu.yoctoproject.org/ws
+ export TOASTER_DJANGO_TMPDIR=/srv/pokybuild/yocto-worker/toaster/build/build
+ TOASTER_DJANGO_TMPDIR=/srv/pokybuild/yocto-worker/toaster/build/build
+ export TOASTER_DIR=/srv/pokybuild/yocto-worker/toaster/build/build
+ TOASTER_DIR=/srv/pokybuild/yocto-worker/toaster/build/build
+ export TOASTER_TEST_USE_SSTATE_MIRROR=True
+ TOASTER_TEST_USE_SSTATE_MIRROR=True
+ export BUILDDIR=/srv/pokybuild/yocto-worker/toaster/build/build/
+ BUILDDIR=/srv/pokybuild/yocto-worker/toaster/build/build/
+ mkdir -p toaster_logs
+ python3 -m venv venv --without-pip --system-site-packages
+ source venv/bin/activate
++ deactivate nondestructive
++ '[' -n '' ']'
++ '[' -n '' ']'
++ hash -r
++ '[' -n '' ']'
++ unset VIRTUAL_ENV
++ unset VIRTUAL_ENV_PROMPT
++ '[' '!' nondestructive = nondestructive ']'
++ '[' linux-gnu = cygwin ']'
++ '[' linux-gnu = msys ']'
++ export VIRTUAL_ENV=/srv/pokybuild/yocto-worker/toaster/build/build/venv
++ VIRTUAL_ENV=/srv/pokybuild/yocto-worker/toaster/build/build/venv
++ _OLD_VIRTUAL_PATH=/srv/pokybuild/yocto-worker/toaster/build/layers/openembedded-core/scripts:/srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/bin:/srv/pokybuild/buildbot-venv/bin:/srv/pokybuild/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
++ PATH=/srv/pokybuild/yocto-worker/toaster/build/build/venv/bin:/srv/pokybuild/yocto-worker/toaster/build/layers/openembedded-core/scripts:/srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/bin:/srv/pokybuild/buildbot-venv/bin:/srv/pokybuild/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
++ export PATH
++ '[' -n '' ']'
++ '[' -z '' ']'
++ _OLD_VIRTUAL_PS1=
++ PS1='(venv) '
++ export PS1
++ VIRTUAL_ENV_PROMPT='(venv) '
++ export VIRTUAL_ENV_PROMPT
++ hash -r
+ python3 -m pip install -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt
Collecting Django<5.3,>5.2 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 1))
  Using cached django-5.2.17-py3-none-any.whl.metadata (4.1 kB)
Collecting beautifulsoup4>=4.4.0 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 2))
  Using cached beautifulsoup4-4.15.0-py3-none-any.whl.metadata (3.8 kB)
Requirement already satisfied: pytz in /usr/lib/python3/dist-packages (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 3)) (2024.1)
Collecting django-log-viewer==1.1.7 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 4))
  Using cached django_log_viewer-1.1.7-py2.py3-none-any.whl
Collecting selenium>=4.13.0 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached selenium-4.49.0-py3-none-any.whl.metadata (7.4 kB)
Collecting pytest>=9.0.3 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 2))
  Using cached pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)
Collecting pytest-django==4.5.2 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 3))
  Using cached pytest_django-4.5.2-py3-none-any.whl.metadata (4.7 kB)
Collecting pytest-env==1.1.0 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 4))
  Using cached pytest_env-1.1.0-py3-none-any.whl.metadata (5.3 kB)
Collecting pytest-html==4.0.2 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 5))
  Using cached pytest_html-4.0.2-py3-none-any.whl.metadata (3.9 kB)
Collecting pytest-metadata==3.0.0 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 6))
  Using cached pytest_metadata-3.0.0-py3-none-any.whl.metadata (8.6 kB)
Collecting pytest-order==1.1.0 (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 7))
  Using cached pytest_order-1.1.0-py3-none-any.whl.metadata (7.5 kB)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from -r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 8)) (2.31.0)
Requirement already satisfied: jinja2>=3.0.0 in /usr/lib/python3/dist-packages (from pytest-html==4.0.2->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 5)) (3.1.2)
Collecting asgiref>=3.8.1 (from Django<5.3,>5.2->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 1))
  Using cached asgiref-3.12.1-py3-none-any.whl.metadata (9.4 kB)
Collecting sqlparse>=0.3.1 (from Django<5.3,>5.2->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 1))
  Using cached sqlparse-0.6.0-py3-none-any.whl.metadata (6.0 kB)
Collecting soupsieve>=1.6.1 (from beautifulsoup4>=4.4.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 2))
  Downloading soupsieve-2.10-py3-none-any.whl.metadata (4.4 kB)
Requirement already satisfied: typing-extensions>=4.0.0 in /usr/lib/python3/dist-packages (from beautifulsoup4>=4.4.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 2)) (4.10.0)
Collecting certifi>=2026.2.25 (from selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)
Collecting trio<1.0,>=0.31.0 (from selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached trio-0.34.0-py3-none-any.whl.metadata (8.5 kB)
Collecting trio-websocket<1.0,>=0.12.2 (from selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached trio_websocket-0.12.2-py3-none-any.whl.metadata (5.1 kB)
Collecting typing-extensions>=4.0.0 (from beautifulsoup4>=4.4.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/toaster-requirements.txt (line 2))
  Using cached typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting urllib3<3.0,>=2.6.3 (from urllib3[socks]<3.0,>=2.6.3->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB)
Collecting websocket-client<2.0,>=1.8.0 (from selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached websocket_client-1.9.2-py3-none-any.whl.metadata (8.3 kB)
Collecting iniconfig>=1.0.1 (from pytest>=9.0.3->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 2))
  Using cached iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)
Requirement already satisfied: packaging>=22 in /usr/lib/python3/dist-packages (from pytest>=9.0.3->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 2)) (24.0)
Collecting pluggy<2,>=1.5 (from pytest>=9.0.3->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 2))
  Using cached pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: pygments>=2.7.2 in /usr/lib/python3/dist-packages (from pytest>=9.0.3->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 2)) (2.17.2)
Collecting attrs>=23.2.0 (from trio<1.0,>=0.31.0->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)
Collecting sortedcontainers (from trio<1.0,>=0.31.0->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached sortedcontainers-2.4.0-py2.py3-none-any.whl.metadata (10 kB)
Requirement already satisfied: idna in /usr/lib/python3/dist-packages (from trio<1.0,>=0.31.0->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1)) (3.6)
Collecting outcome (from trio<1.0,>=0.31.0->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached outcome-1.3.0.post0-py2.py3-none-any.whl.metadata (2.6 kB)
Collecting sniffio>=1.3.0 (from trio<1.0,>=0.31.0->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Collecting wsproto>=0.14 (from trio-websocket<1.0,>=0.12.2->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached wsproto-1.3.2-py3-none-any.whl.metadata (5.2 kB)
Collecting pysocks!=1.5.7,<2.0,>=1.5.6 (from urllib3[socks]<3.0,>=2.6.3->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached PySocks-1.7.1-py3-none-any.whl.metadata (13 kB)
Collecting h11<1,>=0.16.0 (from wsproto>=0.14->trio-websocket<1.0,>=0.12.2->selenium>=4.13.0->-r /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/toaster-tests-requirements.txt (line 1))
  Using cached h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
Using cached pytest_django-4.5.2-py3-none-any.whl (20 kB)
Using cached pytest_env-1.1.0-py3-none-any.whl (6.2 kB)
Using cached pytest_html-4.0.2-py3-none-any.whl (23 kB)
Using cached pytest_metadata-3.0.0-py3-none-any.whl (10 kB)
Using cached pytest_order-1.1.0-py3-none-any.whl (14 kB)
Using cached django-5.2.17-py3-none-any.whl (8.3 MB)
Using cached beautifulsoup4-4.15.0-py3-none-any.whl (109 kB)
Using cached selenium-4.49.0-py3-none-any.whl (11.8 MB)
Using cached pytest-9.1.1-py3-none-any.whl (386 kB)
Using cached asgiref-3.12.1-py3-none-any.whl (25 kB)
Using cached certifi-2026.7.22-py3-none-any.whl (136 kB)
Using cached iniconfig-2.3.0-py3-none-any.whl (7.5 kB)
Using cached pluggy-1.6.0-py3-none-any.whl (20 kB)
Downloading soupsieve-2.10-py3-none-any.whl (38 kB)
Using cached sqlparse-0.6.0-py3-none-any.whl (50 kB)
Using cached trio-0.34.0-py3-none-any.whl (511 kB)
Using cached trio_websocket-0.12.2-py3-none-any.whl (21 kB)
Using cached typing_extensions-4.16.0-py3-none-any.whl (45 kB)
Using cached urllib3-2.8.0-py3-none-any.whl (135 kB)
Using cached websocket_client-1.9.2-py3-none-any.whl (95 kB)
Using cached attrs-26.1.0-py3-none-any.whl (67 kB)
Using cached outcome-1.3.0.post0-py2.py3-none-any.whl (10 kB)
Using cached PySocks-1.7.1-py3-none-any.whl (16 kB)
Using cached sniffio-1.3.1-py3-none-any.whl (10 kB)
Using cached wsproto-1.3.2-py3-none-any.whl (24 kB)
Using cached sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)
Using cached h11-0.16.0-py3-none-any.whl (37 kB)
Installing collected packages: sortedcontainers, django-log-viewer, websocket-client, urllib3, typing-extensions, sqlparse, soupsieve, sniffio, pysocks, pluggy, iniconfig, h11, certifi, attrs, asgiref, wsproto, pytest, outcome, Django, beautifulsoup4, trio, pytest-order, pytest-metadata, pytest-env, pytest-django, trio-websocket, pytest-html, selenium
  Attempting uninstall: urllib3
    Found existing installation: urllib3 2.0.7
    Not uninstalling urllib3 at /usr/lib/python3/dist-packages, outside environment /srv/pokybuild/yocto-worker/toaster/build/build/venv
    Can't uninstall 'urllib3'. No files were found to uninstall.
  Attempting uninstall: typing-extensions
    Found existing installation: typing_extensions 4.10.0
    Not uninstalling typing-extensions at /usr/lib/python3/dist-packages, outside environment /srv/pokybuild/yocto-worker/toaster/build/build/venv
    Can't uninstall 'typing_extensions'. No files were found to uninstall.
  Attempting uninstall: certifi
    Found existing installation: certifi 2023.11.17
    Not uninstalling certifi at /usr/lib/python3/dist-packages, outside environment /srv/pokybuild/yocto-worker/toaster/build/build/venv
    Can't uninstall 'certifi'. No files were found to uninstall.
Successfully installed Django-5.2.17 asgiref-3.12.1 attrs-26.1.0 beautifulsoup4-4.15.0 certifi-2026.7.22 django-log-viewer-1.1.7 h11-0.16.0 iniconfig-2.3.0 outcome-1.3.0.post0 pluggy-1.6.0 pysocks-1.7.1 pytest-9.1.1 pytest-django-4.5.2 pytest-env-1.1.0 pytest-html-4.0.2 pytest-metadata-3.0.0 pytest-order-1.1.0 selenium-4.49.0 sniffio-1.3.1 sortedcontainers-2.4.0 soupsieve-2.10 sqlparse-0.6.0 trio-0.34.0 trio-websocket-0.12.2 typing-extensions-4.16.0 urllib3-2.8.0 websocket-client-1.9.2 wsproto-1.3.2
+ python3 -m pytest -c /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/pytest.ini /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster/tests/
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.1.1, pluggy-1.6.0
django: settings: toastermain.settings_test (from env)
rootdir: /srv/pokybuild/yocto-worker/toaster/build/layers/bitbake/lib/toaster
configfile: pytest.ini
plugins: django-4.5.2, html-4.0.2, order-1.1.0, env-1.1.0, metadata-3.0.0
collected 157 items

../layers/bitbake/lib/toaster/tests/db/test_db.py .                      [  0%]
../layers/bitbake/lib/toaster/tests/commands/test_loaddata.py ...        [  2%]
../layers/bitbake/lib/toaster/tests/commands/test_lsupdates.py .         [  3%]
../layers/bitbake/lib/toaster/tests/builds/test_core_image_min.py ...... [  7%]
................                                                         [ 17%]
../layers/bitbake/lib/toaster/tests/commands/test_runbuilds.py .         [ 17%]
../layers/bitbake/lib/toaster/tests/views/test_views.py ...............  [ 27%]
../layers/bitbake/lib/toaster/tests/browser/test_all_builds_page.py .... [ 29%]
.....                                                                    [ 33%]
../layers/bitbake/lib/toaster/tests/browser/test_all_projects_page.py .. [ 34%]
......                                                                   [ 38%]
../layers/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py . [ 38%]
.......                                                                  [ 43%]
../layers/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py . [ 43%]
..                                                                       [ 45%]
../layers/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py . [ 45%]
                                                                         [ 45%]
../layers/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py . [ 46%]
                                                                         [ 46%]
../layers/bitbake/lib/toaster/tests/browser/test_delete_project.py .     [ 47%]
../layers/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py .      [ 47%]
../layers/bitbake/lib/toaster/tests/browser/test_landing_page.py ....... [ 52%]
......                                                                   [ 56%]
../layers/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py .. [ 57%]
.                                                                        [ 57%]
../layers/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py . [ 58%]
..                                                                       [ 59%]
../layers/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py . [ 60%]
...                                                                      [ 62%]
../layers/bitbake/lib/toaster/tests/browser/test_new_project_page.py ..  [ 63%]
../layers/bitbake/lib/toaster/tests/browser/test_project_builds_page.py . [ 64%]
.....                                                                    [ 67%]
../layers/bitbake/lib/toaster/tests/browser/test_project_config_page.py . [ 68%]
....                                                                     [ 70%]
../layers/bitbake/lib/toaster/tests/browser/test_project_page.py .       [ 71%]
../layers/bitbake/lib/toaster/tests/browser/test_sample.py ..            [ 72%]
../layers/bitbake/lib/toaster/tests/browser/test_task_page.py .          [ 73%]
../layers/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py .    [ 73%]
../layers/bitbake/lib/toaster/tests/functional/test_create_new_project.py . [ 74%]
......                                                                   [ 78%]
../layers/bitbake/lib/toaster/tests/functional/test_functional_basic.py F [ 78%]
.....F                                                                   [ 82%]
../layers/bitbake/lib/toaster/tests/functional/test_project_config.py .. [ 84%]
.......                                                                  [ 88%]
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py F.FF [ 91%]
...F                                                                     [ 93%]
../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py F [ 94%]
F.F.F.                                                                   [ 98%]
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py FF   [ 99%]
../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py F [100%]

=================================== FAILURES ===================================
___________ FuntionalTestBasic.test_review_configuration_information ___________

self = <toaster.tests.functional.test_functional_basic.FuntionalTestBasic testMethod=test_review_configuration_information>

    def test_review_configuration_information(self):
        self.get(reverse('all-projects'))
        self.load_projects_page_helper()
        self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click()
        project_URL=self.get_URL()
    
        # Machine section of page
        self.wait_until_visible('#machine-section')
        self.assertTrue(self.element_exists('#machine-section'),'Machine section for the project configuration page does not exist')
        self.assertTrue(re.search("qemux86-64",self.driver.find_element(By.XPATH, "//span[@id='project-machine-name']").text),'The machine type is not assigned')
        try:
           self.driver.find_element(By.XPATH, "//span[@id='change-machine-toggle']").click()
           self.wait_until_visible('#select-machine-form')
           self.wait_until_visible('#cancel-machine-change')
           self.driver.find_element(By.XPATH, "//form[@id='select-machine-form']/a[@id='cancel-machine-change']").click()
        except:
           self.fail(msg='The machine information is wrong in the configuration page')
    
        # Most built recipes section
        self.wait_until_visible('#no-most-built')
        try:
           self.driver.find_element(By.ID, 'no-most-built')
        except:
           self.fail(msg='No Most built information in project detail page')
    
        # Project Release title
>       self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.XPATH, "//span[@id='project-release-title']").text), 'The project release is not defined in the project detail page')
E       AssertionError: None is not true : The project release is not defined in the project detail page

../layers/bitbake/lib/toaster/tests/functional/test_functional_basic.py:110: AssertionError
---------------------------- Captured stdout setup -----------------------------
The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
  Apply all migrations: admin, auth, bldcontrol, contenttypes, orm, sessions
Running migrations:
  No migrations to apply.
Starting webserver...
Toaster development webserver started at http://localhost:8000

You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.
__________ FuntionalTestBasic.test_verify_project_release_information __________

self = <toaster.tests.functional.test_functional_basic.FuntionalTestBasic testMethod=test_verify_project_release_information>

    def test_verify_project_release_information(self):
        self.get(reverse('all-projects'))
        self.load_projects_page_helper()
        self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click()
        self.wait_until_visible('#project-release-title')
>       self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.ID, "project-release-title").text), 'No project release title information in project detail page')
E       AssertionError: None is not true : No project release title information in project detail page

../layers/bitbake/lib/toaster/tests/functional/test_functional_basic.py:173: AssertionError
--------------------------- Captured stdout teardown ---------------------------
The system will stop.
Successful stop.
_______________________ TestProjectPage.test_distro_page _______________________

self = <toaster.tests.functional.test_project_page.TestProjectPage testMethod=test_distro_page>

    def test_distro_page(self):
        """ Test distros page
            - Check if title "Compatible distros" is displayed
            - Check search input
            - Check "Add layer" button works
            - Check distro table feature(show/hide column, pagination)
        """
>       self._navigate_to_config_nav('distrostable', 7)

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:595: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:148: in _navigate_to_config_nav
    self.wait_until_visible(f'#{nav_id}')
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="2dee97315e744f21453d5405f034274f")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91af19d580>
message = 'An element matching "#distrostable" should be visible', scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#distrostable" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
---------------------------- Captured stdout setup -----------------------------
The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
  Apply all migrations: admin, auth, bldcontrol, contenttypes, orm, sessions
Running migrations:
  No migrations to apply.
Starting webserver...
Toaster development webserver started at http://localhost:8000

You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.
_______________________ TestProjectPage.test_layers_page _______________________

self = <toaster.tests.functional.test_project_page.TestProjectPage testMethod=test_layers_page>

    def test_layers_page(self):
        """ Test layers page
            - Check if title "Compatible layerss" is displayed
            - Check search input
            - Check "Add layer" button works
            - Check "Remove layer" button works
            - Check layers table feature(show/hide column, pagination)
        """
        self._navigate_to_config_nav('layerstable', 6)
        # check title "Compatible layers" is displayed
        self.assertIn("Compatible layers", self.get_page_source())
        # Test search input
        input_text='meta-tanowrt'
>       self._mixin_test_table_search_input(
            input_selector='search-input-layerstable',
            input_text=input_text,
            searchBtn_selector='search-submit-layerstable',
            table_selector='layerstable'
        )

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:522: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:181: in _mixin_test_table_search_input
    self.wait_until_visible(f'#{table_selector} tbody tr')
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="2dee97315e744f21453d5405f034274f")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91b1136020>
message = 'An element matching "#layerstable tbody tr" should be visible'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#layerstable tbody tr" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
______________________ TestProjectPage.test_machines_page ______________________

self = <toaster.tests.functional.test_project_page.TestProjectPage testMethod=test_machines_page>

    def test_machines_page(self):
        """ Test Machine page
            - Check if title "Compatible machines" is displayed
            - Check search input
            - Check "Select machine" button works
            - Check "Add layer" button works
            - Check Machine table feature(show/hide column, pagination)
        """
>       self._navigate_to_config_nav('machinestable', 5)

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:148: in _navigate_to_config_nav
    self.wait_until_visible(f'#{nav_id}')
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="2dee97315e744f21453d5405f034274f")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91b1134720>
message = 'An element matching "#machinestable" should be visible'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#machinestable" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
___________________ TestProjectPage.test_softwareRecipe_page ___________________

self = <toaster.tests.functional.test_project_page.TestProjectPage testMethod=test_softwareRecipe_page>

    def test_softwareRecipe_page(self):
        """ Test software recipe page
            - Check title "Compatible software recipes" is displayed
            - Check search input
            - Check "build recipe" button works
            - Check software recipe table feature(show/hide column, pagination)
        """
>       self._navigate_to_config_nav('softwarerecipestable', 4)

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:385: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:148: in _navigate_to_config_nav
    self.wait_until_visible(f'#{nav_id}')
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="2dee97315e744f21453d5405f034274f")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91b1098ea0>
message = 'An element matching "#softwarerecipestable" should be visible'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#softwarerecipestable" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
--------------------------- Captured stdout teardown ---------------------------
The system will stop.
Successful stop.
______________ TestProjectConfigTab.test_image_recipe_editColumn _______________

self = <toaster.tests.functional.test_project_page_tab_config.TestProjectConfigTab testMethod=test_image_recipe_editColumn>

    def test_image_recipe_editColumn(self):
        """ Test the edit column feature in image recipe table on project page """
        def test_edit_column(check_box_id):
            # Check that we can hide/show table column
            check_box = self.find(f'#{check_box_id}')
            th_class = str(check_box_id).replace('checkbox-', '')
            if check_box.is_selected():
                # check if column is visible in table
                self.assertTrue(
                    self.find(
                        f'#imagerecipestable thead th.{th_class}'
                    ).is_displayed(),
                    f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table"
                )
                check_box.click()
                # check if column is hidden in table
                self.assertFalse(
                    self.find(
                        f'#imagerecipestable thead th.{th_class}'
                    ).is_displayed(),
                    f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table"
                )
            else:
                # check if column is hidden in table
                self.assertFalse(
                    self.find(
                        f'#imagerecipestable thead th.{th_class}'
                    ).is_displayed(),
                    f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table"
                )
                check_box.click()
                # check if column is visible in table
                self.assertTrue(
                    self.find(
                        f'#imagerecipestable thead th.{th_class}'
                    ).is_displayed(),
                    f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table"
                )
    
        self._navigate_to_project_page()
        # navigate to project image recipe page
        recipe_image_page_link = self._get_config_nav_item(3)
        recipe_image_page_link.click()
>       self.wait_until_present('#imagerecipestable tbody tr')

../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py:190: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:225: in wait_until_present
    element = Wait(self.driver, timeout=timeout).until(is_present, msg)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="6e568f96feb5b6c0c345b5e97f0294e4")>
method = <function SeleniumTestCaseBase.wait_until_present.<locals>.<lambda> at 0x7f91b1099a80>
message = 'An element matching "#imagerecipestable tbody tr" should be on the page'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#imagerecipestable tbody tr" should be on the page

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
---------------------------- Captured stdout setup -----------------------------
The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
  Apply all migrations: admin, auth, bldcontrol, contenttypes, orm, sessions
Running migrations:
  No migrations to apply.
Starting webserver...
Toaster development webserver started at http://localhost:8000

You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.
_______________ TestProjectConfigTab.test_image_recipe_show_rows _______________

self = <toaster.tests.functional.test_project_page_tab_config.TestProjectConfigTab testMethod=test_image_recipe_show_rows>

    def test_image_recipe_show_rows(self):
        """ Test the show rows feature in image recipe table on project page """
        def test_show_rows(row_to_show, show_row_link):
            # Check that we can show rows == row_to_show
            show_row_link.select_by_value(str(row_to_show))
            self.wait_until_visible('#imagerecipestable tbody tr')
            # check at least some rows are visible
            self.assertTrue(
                len(self.find_all('#imagerecipestable tbody tr'))  > 0
            )
    
        self._navigate_to_project_page()
        # navigate to project image recipe page
        recipe_image_page_link = self._get_config_nav_item(3)
        recipe_image_page_link.click()
>       self.wait_until_present('#imagerecipestable tbody tr')

../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py:223: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:225: in wait_until_present
    element = Wait(self.driver, timeout=timeout).until(is_present, msg)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="6e568f96feb5b6c0c345b5e97f0294e4")>
method = <function SeleniumTestCaseBase.wait_until_present.<locals>.<lambda> at 0x7f91b109b1a0>
message = 'An element matching "#imagerecipestable tbody tr" should be on the page'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#imagerecipestable tbody tr" should be on the page

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
__________ TestProjectConfigTab.test_project_config_tab_right_section __________

self = <toaster.tests.functional.test_project_page_tab_config.TestProjectConfigTab testMethod=test_project_config_tab_right_section>

    def test_project_config_tab_right_section(self):
        """ Test project config tab right section contains five blocks:
            - Machine:
                - check 'Machine' is displayed
                - check can change Machine
            - Distro:
                - check 'Distro' is displayed
                - check can change Distro
            - Most built recipes:
                - check 'Most built recipes' is displayed
                - check can select a recipe and build it
            - Project release:
                - check 'Project release' is displayed
                - check project has right release displayed
            - Layers:
                - check can add a layer if exists
                - check at least three layers are displayed
                    - openembedded-core
                    - meta-poky
                    - meta-yocto-bsp
        """
        project_id = self.create_new_project(self.PROJECT_NAME + "-ST", '3', None, True)
        url = reverse('project', args=(project_id,))
        self.get(url)
        self.wait_until_visible('#config-nav')
    
        # check if the menu is displayed
        self.wait_until_visible('#project-page')
        block_l = self.driver.find_element(
            By.XPATH, '//*[@id="project-page"]/div[2]')
        project_release = self.driver.find_element(
            By.XPATH, '//*[@id="project-page"]/div[1]/div[4]')
        layers = block_l.find_element(By.ID, 'layer-container')
    
        def check_machine_distro(self, item_name, new_item_name, block_id):
            block = self.find(f'#{block_id}')
            title = block.find_element(By.TAG_NAME, 'h3')
            self.assertIn(item_name.capitalize(), title.text)
            edit_btn = self.find(f'#change-{item_name}-toggle')
            edit_btn.click()
            self.wait_until_visible(f'#{item_name}-change-input')
            name_input = self.find(f'#{item_name}-change-input')
            name_input.clear()
            name_input.send_keys(new_item_name)
            change_btn = self.find(f'#{item_name}-change-btn')
            change_btn.click()
            self.wait_until_visible(f'#project-{item_name}-name')
            project_name = self.find(f'#project-{item_name}-name')
            self.assertIn(new_item_name, project_name.text)
            # check change notificaiton is displayed
            change_notification = self.find('#change-notification')
            self.assertIn(
                f'You have changed the {item_name} to: {new_item_name}', change_notification.text
            )
            hide_button = self.find('#hide-alert')
            hide_button.click()
            self.wait_until_not_visible('#change-notification')
    
        # Machine
        check_machine_distro(self, 'machine', 'qemux86-64', 'machine-section')
        # Distro
        check_machine_distro(self, 'distro', 'poky-altcfg', 'distro-section')
    
        # Project release
        title = project_release.find_element(By.TAG_NAME, 'h3')
        self.assertIn("Project release", title.text)
>       self.assertIn(
            "Yocto Project master", self.find('#project-release-title').text
        )
E       AssertionError: 'Yocto Project master' not found in 'Local Yocto Project'

../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py:304: AssertionError
_____________ TestProjectConfigTab.test_project_page_image_recipe ______________

self = <toaster.tests.functional.test_project_page_tab_config.TestProjectConfigTab testMethod=test_project_page_image_recipe>

    def test_project_page_image_recipe(self):
        """ Test project page section images
            - Check image recipes are displayed
            - Check search input
            - Check image recipe build button works
            - Check image recipe table features(show/hide column, pagination)
        """
        self._navigate_to_project_page()
        # navigate to "Images section"
        images_section = self._get_config_nav_item(3)
        images_section.click()
>       self.wait_until_visible('#imagerecipestable')

../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py:433: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="6e568f96feb5b6c0c345b5e97f0294e4")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91b109b060>
message = 'An element matching "#imagerecipestable" should be visible'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#imagerecipestable" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
_____________ TestProjectPageRecipes.test_image_recipe_editColumn ______________

self = <toaster.tests.functional.test_project_page.TestProjectPageRecipes testMethod=test_image_recipe_editColumn>

    def test_image_recipe_editColumn(self):
        """ Test the edit column feature in image recipe table on project page """
        self._get_create_builds(success=10, failure=10)
    
        url = reverse('projectimagerecipes', args=(TestProjectPageBase.project_id,))
        self.get(url)
>       self.wait_until_present('#imagerecipestable tbody tr')

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:761: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:225: in wait_until_present
    element = Wait(self.driver, timeout=timeout).until(is_present, msg)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="e08ce883ae378cf8e01016a763864883")>
method = <function SeleniumTestCaseBase.wait_until_present.<locals>.<lambda> at 0x7f91b1099940>
message = 'An element matching "#imagerecipestable tbody tr" should be on the page'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#imagerecipestable tbody tr" should be on the page

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
---------------------------- Captured stdout setup -----------------------------
The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
  Apply all migrations: admin, auth, bldcontrol, contenttypes, orm, sessions
Running migrations:
  No migrations to apply.
Starting webserver...
Toaster development webserver started at http://localhost:8000

You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.
________________ TestProjectPageRecipes.test_single_recipe_page ________________

self = <toaster.tests.functional.test_project_page.TestProjectPageRecipes testMethod=test_single_recipe_page>

    def test_single_recipe_page(self):
        """ Test recipe page
            - Check if title is displayed
            - Check add recipe layer displayed
            - Check left section is displayed
                - Check recipe: name, summary, description, Version, Section,
                License, Approx. packages included, Approx. size, Recipe file
        """
        # Use a recipe which is likely to exist in the layer index but not enabled
        # in poky out the box - xen-image-minimal from meta-virtualization
        self._navigate_to_project_page()
        prj = Project.objects.get(pk=TestProjectPageBase.project_id)
>       recipe_id = prj.get_all_compatible_recipes().get(name="xen-image-minimal").pk
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

../layers/bitbake/lib/toaster/tests/functional/test_project_page.py:730: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <QuerySet []>, args = (), kwargs = {'name': 'xen-image-minimal'}

    def get(self, *args, **kwargs):
        """
        Perform the query and return a single object matching the given
        keyword arguments.
        """
        if self.query.combinator and (args or kwargs):
            raise NotSupportedError(
                "Calling QuerySet.get(...) with filters after %s() is not "
                "supported." % self.query.combinator
            )
        clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs)
        if self.query.can_filter() and not self.query.distinct_fields:
            clone = clone.order_by()
        limit = None
        if (
            not clone.query.select_for_update
            or connections[clone.db].features.supports_select_for_update_with_limit
        ):
            limit = MAX_GET_RESULTS
            clone.query.set_limits(high=limit)
        num = len(clone)
        if num == 1:
            return clone._result_cache[0]
        if not num:
>           raise self.model.DoesNotExist(
                "%s matching query does not exist." % self.model._meta.object_name
            )
E           orm.models.Recipe.DoesNotExist: Recipe matching query does not exist.

venv/lib/python3.12/site-packages/django/db/models/query.py:635: DoesNotExist
--------------------------- Captured stdout teardown ---------------------------
The system will stop.
Successful stop.
________________ TestProjectConfigTabDB.test_most_build_recipes ________________

self = <toaster.tests.functional.test_project_page_tab_config.TestProjectConfigTabDB testMethod=test_most_build_recipes>

    def test_most_build_recipes(self):
        """ Test most build recipes block contains"""
        def rebuild_from_most_build_recipes(recipe_list_items):
            checkbox = recipe_list_items[0].find_element(By.TAG_NAME, 'input')
            checkbox.click()
            build_btn = self.find('#freq-build-btn')
            build_btn.click()
            self.wait_until_visible('#latest-builds')
            wait_until_build(self, 'queued cloning starting parsing failed')
            lastest_builds = self.driver.find_elements(
                By.XPATH,
                '//div[@id="latest-builds"]/div'
            )
            self.assertTrue(len(lastest_builds) >= 2)
            last_build = lastest_builds[0]
            try:
                cancel_button = last_build.find_element(
                    By.XPATH,
                    '//span[@class="cancel-build-btn pull-right alert-link"]',
                )
                cancel_button.click()
            except NoSuchElementException:
                # Skip if the build is already cancelled
                pass
            wait_until_build_cancelled(self)
    
        # Create a new project for remaining asserts
        project_id = self.create_new_project(self.PROJECT_NAME + "-MostBuilt", '2', None, True)
        url = reverse('project', args=(project_id,))
        self.get(url)
        self.wait_until_visible('#config-nav')
    
        current_url = self.driver.current_url
        url = current_url.split('?')[0]
    
        # Create a new builds
        self._create_builds()
    
        # back to project page
        self.driver.get(url)
    
        self.wait_until_visible('#project-page')
    
        # Most built recipes
        most_built_recipes = self.driver.find_element(
            By.XPATH, '//*[@id="project-page"]/div[1]/div[3]')
        title = most_built_recipes.find_element(By.TAG_NAME, 'h3')
        self.assertIn("Most built recipes", title.text)
        # check can select a recipe and build it
>       self.wait_until_visible('#freq-build-list')

../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py:499: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:239: in wait_until_visible
    Wait(self.driver, timeout=timeout).until(is_visible, msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.browser.selenium_helpers_base.Wait (session="364d200ec60e2b4c4b40c97829d82620")>
method = <function SeleniumTestCaseBase.wait_until_visible.<locals>.<lambda> at 0x7f91b10fe480>
message = 'An element matching "#freq-build-list" should be visible'
scroll = None

    def until(self, method, message='', scroll=None):
        """
        Calls the method provided with the driver as an argument until the
        return value is not False.
        """
    
        end_time = time.time() + self._timeout
        while True:
            try:
                if scroll:
                    scroll(self._driver)
                value = method(self._driver)
                if value:
                    return value
    
            except ElementNotInteractableException:
                pass
            except NoSuchElementException:
                pass
            except StaleElementReferenceException:
                pass
            except WebDriverException:
                # selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Node with given id does not belong to the document"}
                pass
    
            time.sleep(self._poll)
            if time.time() > end_time:
                break
    
>       raise TimeoutException(message)
E       selenium.common.exceptions.TimeoutException: Message: An element matching "#freq-build-list" should be visible

../layers/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py:132: TimeoutException
---------------------------- Captured stdout setup -----------------------------
The system will start.
Check if toaster can listen on localhost:8000
OK
Operations to perform:
  Apply all migrations: admin, auth, bldcontrol, contenttypes, orm, sessions
Running migrations:
  No migrations to apply.
Starting webserver...
Toaster development webserver started at http://localhost:8000

You can now run 'bitbake <target>' on the command line and monitor your build in Toaster.
You can also use a Toaster project to configure and run a build.

Successful start.
--------------------------- Captured stdout teardown ---------------------------
The system will stop.
Successful stop.
- Generated html report: file:///srv/pokybuild/yocto-worker/toaster/build/build/Toaster%20Tests%20Report.html -
=========================== short test summary info ============================
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_functional_basic.py::FuntionalTestBasic::test_review_configuration_information
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_functional_basic.py::FuntionalTestBasic::test_verify_project_release_information
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPage::test_distro_page
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPage::test_layers_page
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPage::test_machines_page
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPage::test_softwareRecipe_page
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::test_image_recipe_editColumn
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::test_image_recipe_show_rows
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::test_project_config_tab_right_section
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py::TestProjectConfigTab::test_project_page_image_recipe
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPageRecipes::test_image_recipe_editColumn
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page.py::TestProjectPageRecipes::test_single_recipe_page
FAILED ../layers/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py::TestProjectConfigTabDB::test_most_build_recipes
================== 13 failed, 144 passed in 945.57s (0:15:45) ==================

Error details

Submitted on:
24/09/26 10:52
Error type:
Core
Command:
bitbake
Machine:
qemux86-64
Distro:
poky
Build system:
unknown
Target system:
unknown
Host distro:
unknown
Branch:
master-next
Commit:
unknown
Build:
#251780
Submitter:
yp-ab-ubuntu2404-vk-1
Link back:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/88/builds/840
Similar errors:
0
Open a bug