diff mbox series

[v2] toaster: add tox.ini file to execute test suite

Message ID 20231024182828.156237-1-marlon.rodriguez-garcia@savoirfairelinux.com
State New
Headers show
Series [v2] toaster: add tox.ini file to execute test suite | expand

Commit Message

Marlon Rodriguez Garcia Oct. 24, 2023, 6:28 p.m. UTC
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.)

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
---
 .../tests/browser/selenium_helpers_base.py    |  8 +++++++-
 lib/toaster/tox.ini                           | 20 +++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 lib/toaster/tox.ini

Comments

Tim Orling Oct. 24, 2023, 9:54 p.m. UTC | #1
I still see failing tests, but the tox.ini itself is functional enough and
streamlined enough to merge now.

On Tue, Oct 24, 2023 at 11:28 AM Marlon Rodriguez Garcia <
marlon.rodriguez-garcia@savoirfairelinux.com> wrote:

> 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.)
>
> Signed-off-by: Marlon Rodriguez Garcia <
> marlon.rodriguez-garcia@savoirfairelinux.com>
>
Reviewed-by: Tim Orling <tim.orling@konsulko.com>
Tested-by: Tim Orling <tim.orling@konsulko.com>


The following lines belong below the three hyphens (---) so they do not
show up in the final git history.
If you are using git send-email you can use --annotate to edit the patch
before sending.


> 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
> ---
>  .../tests/browser/selenium_helpers_base.py    |  8 +++++++-
>  lib/toaster/tox.ini                           | 20 +++++++++++++++++++
>  2 files changed, 27 insertions(+), 1 deletion(-)
>  create mode 100644 lib/toaster/tox.ini
>
> diff --git a/lib/toaster/tests/browser/selenium_helpers_base.py
> b/lib/toaster/tests/browser/selenium_helpers_base.py
> index 9a4e27a3..e0ac4376 100644
> --- a/lib/toaster/tests/browser/selenium_helpers_base.py
> +++ b/lib/toaster/tests/browser/selenium_helpers_base.py
> @@ -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':
> diff --git a/lib/toaster/tox.ini b/lib/toaster/tox.ini
> new file mode 100644
> index 00000000..8c0fe171
> --- /dev/null
> +++ b/lib/toaster/tox.ini
> @@ -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
> \ No newline at end of file
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#5887):
> https://lists.yoctoproject.org/g/toaster/message/5887
> Mute This Topic: https://lists.yoctoproject.org/mt/102163592/924729
> Group Owner: toaster+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/toaster/unsub [
> ticotimo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/lib/toaster/tests/browser/selenium_helpers_base.py b/lib/toaster/tests/browser/selenium_helpers_base.py
index 9a4e27a3..e0ac4376 100644
--- a/lib/toaster/tests/browser/selenium_helpers_base.py
+++ b/lib/toaster/tests/browser/selenium_helpers_base.py
@@ -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':
diff --git a/lib/toaster/tox.ini b/lib/toaster/tox.ini
new file mode 100644
index 00000000..8c0fe171
--- /dev/null
+++ b/lib/toaster/tox.ini
@@ -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
\ No newline at end of file