This reverts commit 99305c25fafa61064a1bb0849616e4627e3453d7.
After discussion we found various versions of selenium don't work
with this change.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Test that the followings link are visible and clickable:
- OpenEmbedded
- BitBake
- Yocto Project
- Read the Toaster manual
- Contribute to Toaster
- Fixed typo: using instead of usign line:97
- Remove whitespace
(Bitbake rev: d4c35eaff3c152ee864a886aac8ad5476f7f29f7)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- check that the documentation link is visible
- check browser open new tab toaster manual when clicking on the documentation link
(Bitbake rev: befe970fcc7742cf266e03849be36c733bb09de6)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check the information icon is visible and clickable
Also if popup appearing when clicked and contain "Toaster version information"
(Bitbake rev: 0508fd74ebd43359473a9718edf0d146002041ad)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As mentionned in earlier commit, pytest-django takes a conservative approach
to enabling database access. By default our tests will fail if they try to access
the database, Only if we explicitly request database access will this be allowed,
using pytest marks to tell pytest-django our test needs database access.
A side effect of pytest mark, is test_case method marked is execute out of
scope of its module class, which create an inconsistance sequence and make fails
followings tests.
The scope of the ordering is global per default, e.g. tests with lower ordinal
numbers are always executed before tests with higher numbers in the same test session,
regardless of the module and class they reside in. This can be changed by using
the --order-scope option from module pytest-order.
To fix that i added execution order to tests suite using pytest-order.
(Bitbake rev: 8bf32459ab6d8ce7632fca0a4ce0f3aecc7495c2)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove load and create build environment from tests/functional/functional_helpers
- Testcases in the FunctionalTestCase do not require a build process,
- Also marked setUpClass or class with pytest django_db, db ... not
working, as declared above of file functional_helpers.py, The database access
process runs as an external process, separate from the test case process
and outside the context of pytest.
(Bitbake rev: 35c02c26541c05a8d147f41d0855e09d8fba1a83)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The pytest framework makes it easy to write small, readable tests, and can scale
to support complex functional testing for applications and libraries.
- Pytest-html is a plugin for pytest that generates a HTML report for test results.
- Pytest-django allows us to test Django project/applications with the pytest testing tool.
- Pytest-env is a pytest plugin that enables us to set environment variables in a pytest.ini or pyproject.toml file
- Pytest-metadata is a plugin for pytest that provides access to test session metadata, required by pytest-html plugin
to provides metadata information in the HTML report like below:
Python 3.10.12
Platform Linux-6.2.0-35-generic-x86_64-with-glibc2.35
Packages:
- pytest: 7.4.2
- pluggy: 1.3.0
Plugins :
- django: 4.5.2
- metadata: 3.0.0
- order: 1.1.0
- html: 4.0.2
- env: 1.1.0
To make difference between bitbake and toaster python requirements,
a dedicated requirements file is created for toaster in root of toaster dir.
(Bitbake rev: 804d17df22391b2d18a68d8cb05a04841d4e551b)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Updated tox file to fix enviroments variables.
to run tox use the following command:
tox -e env_name -c /path/to/file/tox.ini
See tox cli https://tox.wiki/en/latest/cli_interface.html
The variable env_name is linked to the python versions (py38, py39, py310).
If env_name option is not set, the test suite will run for all indicated versions.
It was also modified the webdriver options for chrome to run selenium test in console because of the error detected in the previous test run
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Bitbake rev: 11dfd7c05642269b7a8bff2918667348d041ec79)
Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Changes in v2
- Updated variable path BUILDDIR and EVENTREPLAY_DIR to use enviroment value
- Updated toaster-requirements.txt file path
- Removed flake8
- Added webdriver options to chrome
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To test custom image creation, a file for base_recipe should exists otherwise test fail,
User we need to build a base image first, that will create a file for base_recipe, which take a while.
To avoid test dependencies between test and run build, i create a tmp file for base recipe.
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>
(Bitbake rev: 99c24df73831a72f311090b3aebcf3cc4e86851a)
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Call wait_until_visible before send_keys to be sure inputs is visible otherwise
we get followings error: selenium.common.exceptions.WebDriverException -> Message: element not interactable
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>
(Bitbake rev: 8d671e50036acb0e65c90a07f757e066c0463113)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Updated functional test file to fix url access and added waiting time after click operations
to allow following elements to be available for tests, this will needed to be revisited
when autobuilder is ready
(Bitbake rev: fa30af75b3b7d37215f2615aa4b458525fce509e)
Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Updated selenium version to latest 4.13.0, changed selenum specific version syntax elements to accomplish test success
(Bitbake rev: 868c88a249ef4b9fe5a891e76e25e054e4fcd994)
Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Correctly import, and inherit functions, and variables.
Also fix some typos and remove some Python 2 code that isn't recognised.
(Bitbake rev: b0c807be5c2170c9481c1a04d4c11972135d7dc5)
Signed-off-by: Frazer Clews <frazerleslieclews@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
removed unused imports which made the code harder to read, and slightly
but less efficient
(Bitbake rev: 4367692a932ac135c5aa4f9f2a4e4f0150f76697)
Signed-off-by: Frazer Clews <frazer.clews@codethink.co.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are much better ways to handle this and most editors shouldn't need this
in modern times, drop the noise from the files. Its not consitently applied
anyway.
(Bitbake rev: 5e43070e3087d09aea2f459b033d035c5ef747d0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the introduction of SPDX-License-Identifier headers, we don't need a ton
of header boilerplate in every file. Simplify the files and rely on the top
level for the full licence text.
(Bitbake rev: 695d84397b68cc003186e22f395caa378b06bc75)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This adds the SPDX-License-Identifier license headers to the majority of
our source files to make it clearer exactly which license files are under.
The bulk of the files are under GPL v2.0 with one found to be under V2.0
or later, some under MIT and some have dual license. There are some files
which are potentially harder to classify where we've imported upstream code
and those can be handled specifically in later commits.
The COPYING file is replaced with LICENSE.X files which contain the full
license texts.
(Bitbake rev: ff237c33337f4da2ca06c3a2c49699bc26608a6b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that we use python3, we should refer to pip3, not pip.
[YOCTO #10774]
(Bitbake rev: 99136f5f591deef0c96d9aea2dbea1c216f38121)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds the ability to specify a Selenium Docker container server as
a driver. This allows for repeatable tests independent of host.
Currently we assume you are using the Firefox container. Instructions
are located in the README in tests/browser.
(Bitbake rev: 7df842f8f8b2ae640109ed06729ab59c9469fc64)
Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add some simple sanity tests for the management commands that we use for
Toaster.
Can be executed with ./manage.py test tests.commands
For faster execution use the test settings and keepdb flag:
DJANGO_SETTINGS_MODULE=toastermain.settings_test ./manage.py test
tests.commands --keepdb
(Bitbake rev: 161ea71519e7f70d4aadaafc9c3294a12612f0cb)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Run toaster-eventreplay with core-image-minimal.events and
test if all required packages present in Target_Installed_Package
table.
(Bitbake rev: 73410e6dc965b2885c68e87ed6fa8d8b57e9c49d)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that we're using fixtures for configuration just load these instead
of trying to search for a toasterconf json file.
Also for convenience add the ability for the tests to source the build
environment script. To use this test make sure that directories are in
the same layout as poky.
(Bitbake rev: 448d1d9dc8989ef4c997a90c71cd7e1da0495c1c)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add an additional wait_until_visible for the save buttons as firefox
animates this into view so slowly we get a race on them being visible
(Bitbake rev: 4b89db30af25da5f2c519cf684655d5af99f0e2c)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Consolidating all the tests to live in the same place to make them more
discoverable and consistent as well as not cluttering up the django app
directory.
(Bitbake rev: 66076c006079237d97aaef4f242af5a4fa116d97)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Browser test we changed the project heading access to use the class name
- Update toastergui unit test for additional gotoUrl property
- On faster browsers we had a race for layer details inputs being
visible
(Bitbake rev: 80f377ebcffd01dbe393ccffb999df4b04552f8a)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: bavery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In some cases there is a need to fire bb events into multiple
python threads so locking is needed (writing to a fd/socket).
Adding a helper functions for disable/enable by request to avoid
overhead.
[YOCTO #10330]
(Bitbake rev: a583dc0b296415ec904c081c4de96ceef46732a8)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>