bundle-kubeflow
bundle-kubeflow copied to clipboard
Test environment fails using Selenium in Jammy
Issue
When running the tests in Jammy, Selenium ones fail because geckodriver
package is not included due to the change of Firefox package to snap.
$ tox -e tests -- -m lite --username mateo --password password123
tests installed: absl-py==0.11.0,anyio==3.6.1,asttokens==2.0.5,attrs==21.4.0,backcall==0.2.0,bcrypt==3.2.2,blinker==1.4,cachetools==4.2.4,certifi==2021.10.8,cffi==1.15.0,charset-normalizer==2.0.12,click==7.1.2,cloudpickle==1.6.0,cryptography==37.0.2,decorator==5.1.1,Deprecated==1.2.13,docstring-parser==0.14.1,executing==0.8.3,fire==0.4.0,flaky==3.7.0,google-api-core==2.7.3,google-api-python-client==1.12.11,google-auth==1.35.0,google-auth-httplib2==0.1.0,google-cloud-core==2.3.0,google-cloud-storage==1.44.0,google-crc32c==1.3.0,google-resumable-media==2.3.2,googleapis-common-protos==1.56.1,h11==0.12.0,h2==4.1.0,hpack==4.0.0,httpcore==0.14.7,httplib2==0.20.4,httpx==0.22.0,hyperframe==6.0.1,idna==3.3,iniconfig==1.1.1,ipdb==0.13.9,ipython==8.3.0,jedi==0.18.1,Jinja2==3.1.2,jsonschema==3.2.0,juju==2.9.9,jujubundlelib==0.5.7,kaitaistruct==0.9,kfp==1.8.0,kfp-pipeline-spec==0.1.14,kfp-server-api==1.8.1,kubernetes==12.0.1,lightkube==0.10.2,lightkube-models==1.23.6.4,macaroonbakery==1.3.1,MarkupSafe==2.1.1,matplotlib-inline==0.1.3,mypy-extensions==0.4.3,oauthlib==3.2.0,packaging==21.3,paramiko==2.11.0,parso==0.8.3,pexpect==4.8.0,pickleshare==0.7.5,pluggy==0.13.1,prompt-toolkit==3.0.29,protobuf==3.20.1,ptyprocess==0.7.0,pure-eval==0.2.2,py==1.11.0,pyasn1==0.4.8,pyasn1-modules==0.2.8,pycparser==2.21,pydantic==1.9.0,Pygments==2.12.0,pymacaroons==0.13.0,PyNaCl==1.5.0,pyOpenSSL==22.0.0,pyparsing==3.0.9,pyRFC3339==1.1,pyrsistent==0.18.1,PySocks==1.7.1,pytest==6.2.3,pytest-asyncio==0.18.3,pytest-operator==0.19.1,python-dateutil==2.8.2,pytz==2022.1,PyYAML==5.3.1,requests==2.27.1,requests-oauthlib==1.3.1,requests-toolbelt==0.9.1,rfc3986==1.5.0,rsa==4.8,selenium==3.141.0,selenium-wire==4.3.1,sh==1.14.1,six==1.16.0,sniffio==1.2.0,stack-data==0.2.0,strip-hints==0.1.10,tabulate==0.8.9,termcolor==1.1.0,theblues==0.5.2,toml==0.10.2,toposort==1.7,traitlets==5.2.1.post0,typing-inspect==0.7.1,typing_extensions==4.2.0,uritemplate==3.0.1,urllib3==1.26.9,wcwidth==0.2.5,websocket-client==1.3.2,websockets==8.1,wrapt==1.14.1,wsproto==1.1.0
tests run-test-pre: PYTHONHASHSEED='1571910265'
tests run-test: commands[0] | pytest -v --tb native --show-capture=no -m lite --username mateo --password password123 /home/mateo/workspace/canonical/bundle-kubeflow/tests/
=============================================== test session starts ================================================
platform linux -- Python 3.9.12, pytest-6.2.3, py-1.11.0, pluggy-0.13.1 -- /home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/bin/python
cachedir: .tox/tests/.pytest_cache
rootdir: /home/mateo/workspace/canonical/bundle-kubeflow, configfile: pytest.ini
plugins: operator-0.19.1, anyio-3.6.1, asyncio-0.18.3, flaky-3.7.0
asyncio: mode=legacy
collected 6 items / 2 deselected / 4 selected
tests/test_kubectl.py::test_all_charms_running
-------------------------------------------------- live log setup --------------------------------------------------
INFO pytest_operator.plugin:plugin.py:597 Adding model microk8s-localhost:test-kubectl-dv4y on cloud microk8s
PASSED [ 25%]
tests/test_kubectl.py::test_crd_created_lite
-------------------------------------------------- live log call ---------------------------------------------------
INFO sh.command:sh.py:642 <Command '/snap/bin/juju-kubectl get crd -oyaml', pid 353435>: process started
PASSED [ 50%]
------------------------------------------------ live log teardown -------------------------------------------------
INFO pytest_operator.plugin:plugin.py:740 Model status:
Model Controller Cloud/Region Version SLA Timestamp
test-kubectl-dv4y microk8s-localhost microk8s/localhost 2.9.29 unsupported 10:55:12-05:00
INFO pytest_operator.plugin:plugin.py:746 Juju error logs:
INFO pytest_operator.plugin:plugin.py:832 Resetting model test-kubectl-dv4y...
INFO pytest_operator.plugin:plugin.py:837 Not waiting on reset to complete.
INFO pytest_operator.plugin:plugin.py:811 Forgetting main...
tests/test_pipelines.py::test_pipelines[cowsay-cowsay_pipeline] ERROR [ 75%]
tests/test_selenium.py::test_login
-------------------------------------------------- live log setup --------------------------------------------------
INFO root:test_selenium.py:46 Executing driver fixture
INFO root:test_selenium.py:60 Using juju = /snap/bin/juju
INFO root:test_selenium.py:72 Using url = http://10.64.140.43.nip.io/
INFO root:test_selenium.py:82 Using dex-auth username = mateo
INFO root:test_selenium.py:83 Using dex-auth dex_password = (not shown)
INFO seleniumwire.backend:backend.py:53 Created proxy listening on 127.0.0.1:35129
ERROR [100%]
====================================================== ERRORS ======================================================
_____________________________ ERROR at setup of test_pipelines[cowsay-cowsay_pipeline] _____________________________
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 175, in from_service_account
token = account_dir.joinpath("token").read_text()
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1266, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1252, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1120, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '/var/run/secrets/kubernetes.io/serviceaccount/token'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 210, in from_env
return KubeConfig.from_service_account(service_account=service_account)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 178, in from_service_account
raise exceptions.ConfigError(str(e))
lightkube.core.exceptions.ConfigError: [Errno 2] No such file or directory: '/var/run/secrets/kubernetes.io/serviceaccount/token'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/tests/test_pipelines.py", line 50, in lightkube_client
client = lightkube.Client()
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/core/client.py", line 43, in __init__
self._client = GenericSyncClient(config, namespace=namespace, timeout=timeout, lazy=lazy,
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/core/generic_client.py", line 82, in __init__
config = KubeConfig.from_env().get()
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 212, in from_env
return KubeConfig.from_file(os.environ.get('KUBECONFIG', default_config))
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 142, in from_file
raise exceptions.ConfigError(f"Configuration file {fname} not found")
lightkube.core.exceptions.ConfigError: Configuration file ~/.kube/config not found
___________________________________________ ERROR at setup of test_login ___________________________________________
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 72, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/subprocess.py", line 1821, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/tests/test_selenium.py", line 102, in driver
with webdriver.Firefox(**kwargs) as driver:
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/seleniumwire/webdriver.py", line 75, in __init__
super().__init__(*args, **kwargs)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 81, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
================================================= warnings summary =================================================
.tox/tests/lib/python3.9/site-packages/pytest_asyncio/plugin.py:191
/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)
.tox/tests/lib/python3.9/site-packages/kfp/components/_python_op.py:268
/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/kfp/components/_python_op.py:268: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+
from lib2to3 import fixer_base, refactor, fixer_util
-- Docs: https://docs.pytest.org/en/stable/warnings.html
============================================= short test summary info ==============================================
ERROR tests/test_pipelines.py::test_pipelines[cowsay-cowsay_pipeline] - lightkube.core.exceptions.ConfigError: Co...
ERROR tests/test_selenium.py::test_login - selenium.common.exceptions.WebDriverException: Message: 'geckodriver' ...
============================== 2 passed, 2 deselected, 2 warnings, 2 errors in 17.47s ==============================
ERROR: InvocationError for command /home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/bin/pytest -v --tb native --show-capture=no -m lite --username mateo --password password123 tests (exited with code 1)
_____________________________________________________ summary ______________________________________________________
ERROR: tests: commands failed
I have tried to download the driver (also installing from cargo as stated in the project repo) and include it in the path. However, the error persists.
$ tox -e tests -- -m lite --username mateo --password password123
tests installed: absl-py==0.11.0,anyio==3.6.1,asttokens==2.0.5,attrs==21.4.0,backcall==0.2.0,bcrypt==3.2.2,blinker==1.4,cachetools==4.2.4,certifi==2021.10.8,cffi==1.15.0,charset-normalizer==2.0.12,click==7.1.2,cloudpickle==1.6.0,cryptography==37.0.2,decorator==5.1.1,Deprecated==1.2.13,docstring-parser==0.14.1,executing==0.8.3,fire==0.4.0,flaky==3.7.0,google-api-core==2.7.3,google-api-python-client==1.12.11,google-auth==1.35.0,google-auth-httplib2==0.1.0,google-cloud-core==2.3.0,google-cloud-storage==1.44.0,google-crc32c==1.3.0,google-resumable-media==2.3.2,googleapis-common-protos==1.56.1,h11==0.12.0,h2==4.1.0,hpack==4.0.0,httpcore==0.14.7,httplib2==0.20.4,httpx==0.22.0,hyperframe==6.0.1,idna==3.3,iniconfig==1.1.1,ipdb==0.13.9,ipython==8.3.0,jedi==0.18.1,Jinja2==3.1.2,jsonschema==3.2.0,juju==2.9.9,jujubundlelib==0.5.7,kaitaistruct==0.9,kfp==1.8.0,kfp-pipeline-spec==0.1.14,kfp-server-api==1.8.1,kubernetes==12.0.1,lightkube==0.10.2,lightkube-models==1.23.6.4,macaroonbakery==1.3.1,MarkupSafe==2.1.1,matplotlib-inline==0.1.3,mypy-extensions==0.4.3,oauthlib==3.2.0,packaging==21.3,paramiko==2.11.0,parso==0.8.3,pexpect==4.8.0,pickleshare==0.7.5,pluggy==0.13.1,prompt-toolkit==3.0.29,protobuf==3.20.1,ptyprocess==0.7.0,pure-eval==0.2.2,py==1.11.0,pyasn1==0.4.8,pyasn1-modules==0.2.8,pycparser==2.21,pydantic==1.9.0,Pygments==2.12.0,pymacaroons==0.13.0,PyNaCl==1.5.0,pyOpenSSL==22.0.0,pyparsing==3.0.9,pyRFC3339==1.1,pyrsistent==0.18.1,PySocks==1.7.1,pytest==6.2.3,pytest-asyncio==0.18.3,pytest-operator==0.19.1,python-dateutil==2.8.2,pytz==2022.1,PyYAML==5.3.1,requests==2.27.1,requests-oauthlib==1.3.1,requests-toolbelt==0.9.1,rfc3986==1.5.0,rsa==4.8,selenium==3.141.0,selenium-wire==4.3.1,sh==1.14.1,six==1.16.0,sniffio==1.2.0,stack-data==0.2.0,strip-hints==0.1.10,tabulate==0.8.9,termcolor==1.1.0,theblues==0.5.2,toml==0.10.2,toposort==1.7,traitlets==5.2.1.post0,typing-inspect==0.7.1,typing_extensions==4.2.0,uritemplate==3.0.1,urllib3==1.26.9,wcwidth==0.2.5,websocket-client==1.3.2,websockets==8.1,wrapt==1.14.1,wsproto==1.1.0
tests run-test-pre: PYTHONHASHSEED='3772527673'
tests run-test: commands[0] | pytest -v --tb native --show-capture=no -m lite --username mateo --password password123 /home/mateo/workspace/canonical/bundle-kubeflow/tests/
=============================================== test session starts ================================================
platform linux -- Python 3.9.12, pytest-6.2.3, py-1.11.0, pluggy-0.13.1 -- /home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/bin/python
cachedir: .tox/tests/.pytest_cache
rootdir: /home/mateo/workspace/canonical/bundle-kubeflow, configfile: pytest.ini
plugins: operator-0.19.1, anyio-3.6.1, asyncio-0.18.3, flaky-3.7.0
asyncio: mode=legacy
collected 6 items / 2 deselected / 4 selected
tests/test_kubectl.py::test_all_charms_running
-------------------------------------------------- live log setup --------------------------------------------------
INFO pytest_operator.plugin:plugin.py:597 Adding model microk8s-localhost:test-kubectl-yrim on cloud microk8s
PASSED [ 25%]
tests/test_kubectl.py::test_crd_created_lite
-------------------------------------------------- live log call ---------------------------------------------------
INFO sh.command:sh.py:642 <Command '/snap/bin/juju-kubectl get crd -oyaml', pid 380412>: process started
PASSED [ 50%]
------------------------------------------------ live log teardown -------------------------------------------------
INFO pytest_operator.plugin:plugin.py:740 Model status:
Model Controller Cloud/Region Version SLA Timestamp
test-kubectl-yrim microk8s-localhost microk8s/localhost 2.9.29 unsupported 11:01:31-05:00
INFO pytest_operator.plugin:plugin.py:746 Juju error logs:
INFO pytest_operator.plugin:plugin.py:832 Resetting model test-kubectl-yrim...
INFO pytest_operator.plugin:plugin.py:837 Not waiting on reset to complete.
INFO pytest_operator.plugin:plugin.py:811 Forgetting main...
tests/test_pipelines.py::test_pipelines[cowsay-cowsay_pipeline] ERROR [ 75%]
tests/test_selenium.py::test_login
-------------------------------------------------- live log setup --------------------------------------------------
INFO root:test_selenium.py:46 Executing driver fixture
INFO root:test_selenium.py:60 Using juju = /snap/bin/juju
INFO root:test_selenium.py:72 Using url = http://10.64.140.43.nip.io/
INFO root:test_selenium.py:82 Using dex-auth username = mateo
INFO root:test_selenium.py:83 Using dex-auth dex_password = (not shown)
INFO seleniumwire.backend:backend.py:53 Created proxy listening on 127.0.0.1:45411
ERROR [100%]
====================================================== ERRORS ======================================================
_____________________________ ERROR at setup of test_pipelines[cowsay-cowsay_pipeline] _____________________________
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 175, in from_service_account
token = account_dir.joinpath("token").read_text()
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1266, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1252, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/home/mateo/.pyenv/versions/3.9.12/lib/python3.9/pathlib.py", line 1120, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '/var/run/secrets/kubernetes.io/serviceaccount/token'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 210, in from_env
return KubeConfig.from_service_account(service_account=service_account)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 178, in from_service_account
raise exceptions.ConfigError(str(e))
lightkube.core.exceptions.ConfigError: [Errno 2] No such file or directory: '/var/run/secrets/kubernetes.io/serviceaccount/token'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/tests/test_pipelines.py", line 50, in lightkube_client
client = lightkube.Client()
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/core/client.py", line 43, in __init__
self._client = GenericSyncClient(config, namespace=namespace, timeout=timeout, lazy=lazy,
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/core/generic_client.py", line 82, in __init__
config = KubeConfig.from_env().get()
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 212, in from_env
return KubeConfig.from_file(os.environ.get('KUBECONFIG', default_config))
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/lightkube/config/kubeconfig.py", line 142, in from_file
raise exceptions.ConfigError(f"Configuration file {fname} not found")
lightkube.core.exceptions.ConfigError: Configuration file ~/.kube/config not found
___________________________________________ ERROR at setup of test_login ___________________________________________
Traceback (most recent call last):
File "/home/mateo/workspace/canonical/bundle-kubeflow/tests/test_selenium.py", line 102, in driver
with webdriver.Firefox(**kwargs) as driver:
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/seleniumwire/webdriver.py", line 75, in __init__
super().__init__(*args, **kwargs)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
RemoteWebDriver.__init__(
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Failed to read marionette port
================================================= warnings summary =================================================
.tox/tests/lib/python3.9/site-packages/pytest_asyncio/plugin.py:191
/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)
.tox/tests/lib/python3.9/site-packages/kfp/components/_python_op.py:268
/home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/lib/python3.9/site-packages/kfp/components/_python_op.py:268: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+
from lib2to3 import fixer_base, refactor, fixer_util
-- Docs: https://docs.pytest.org/en/stable/warnings.html
============================================= short test summary info ==============================================
ERROR tests/test_pipelines.py::test_pipelines[cowsay-cowsay_pipeline] - lightkube.core.exceptions.ConfigError: Co...
ERROR tests/test_selenium.py::test_login - selenium.common.exceptions.TimeoutException: Message: Failed to read m...
======================== 2 passed, 2 deselected, 2 warnings, 2 errors in 151.86s (0:02:31) =========================
ERROR: InvocationError for command /home/mateo/workspace/canonical/bundle-kubeflow/.tox/tests/bin/pytest -v --tb native --show-capture=no -m lite --username mateo --password password123 tests (exited with code 1)
_____________________________________________________ summary ______________________________________________________
ERROR: tests: commands failed
Have you already tried
% mkdir $HOME/tmp
% TMPDIR=$HOME/tmp geckodriver
?
See also https://github.com/mozilla/geckodriver/releases/tag/v0.31.0
did you manage to fix it? I have same problem.. ex: selenium.common.exceptions.TimeoutException: Message: Failed to read marionette port
I also have the same problem.
The workaround I have used is to change the test browser driver from Firefox to Chrome/Chromium, these work without any problems.
Had the same problem, I removed the snap package an installed firefox from external repositories as a workaround.
same problem