bitbake: toaster: add tox.ini file to execute test suite

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>
This commit is contained in:
Marlon Rodriguez Garcia 2023-10-24 14:28:28 -04:00 committed by Richard Purdie
parent 60a434179c
commit 6745d5eb7c
2 changed files with 27 additions and 1 deletions

View File

@ -33,7 +33,13 @@ def create_selenium_driver(cls,browser='chrome'):
browser = env_browser
if browser == 'chrome':
return webdriver.Chrome()
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--remote-debugging-port=9222')
return webdriver.Chrome(options=options)
elif browser == 'firefox':
return webdriver.Firefox()
elif browser == 'marionette':

View File

@ -0,0 +1,20 @@
[tox]
envlist = py38, py39, py310
skipsdist = True
toxworkdir = {env:TOX_WORKDIR:.tox}
passenv = *
[testenv]
setenv =
DJANGO_SETTINGS_MODULE=toastermain.settings_test
TOASTER_BUILDSERVER=1
BUILDDIR = {env:BUILDDIR}
EVENTREPLAY_DIR = {env:EVENTREPLAY_DIR:BUILDDIR}
commands =
python3 {toxinidir}/manage.py test tests.db tests.commands tests.builds tests.browser tests.functional tests.views
deps =
-r {toxinidir}/../../toaster-requirements.txt
-r {toxinidir}/tests/toaster-tests-requirements.txt
[testenv:chrome]
commands={[testenv]commands} --splinter-webdriver=chrome