Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump d3-color and d3 in /static #1943

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Merge branch 'master' into dependabot/npm_and_yarn/static/d3-color-an…

57364e0
Select commit
Loading
Failed to load commit list.
Open

Bump d3-color and d3 in /static #1943

Merge branch 'master' into dependabot/npm_and_yarn/static/d3-color-an…
57364e0
Select commit
Loading
Failed to load commit list.
Google Cloud Build / website-pull-request-webdriver (datcom-ci) failed Dec 27, 2024 in 11m 59s

Summary

Build Information

Trigger website-pull-request-webdriver
Build f050480e-8a01-4ae6-904d-6be76eeda85f
Start 2024-12-27T14:44:18-08:00
Duration 11m3.928s
Status FAILURE

Steps

Step Status Duration
package_js SUCCESS 2m52.792s
setup_python SUCCESS 2m26.457s
flask_webdriver_test FAILURE 8m3.55s

Details

starting build "f050480e-8a01-4ae6-904d-6be76eeda85f"

FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/datacommonsorg/website
 * branch            57364e0a60705badeb3b682f0cbd75987d905476 -> FETCH_HEAD
HEAD is now at 57364e0 Merge branch 'master' into dependabot/npm_and_yarn/static/d3-color-and-d3-3.1.0
BUILD
Starting Step #0 - "package_js"
Starting Step #1 - "setup_python"
Step #0 - "package_js": Pulling image: gcr.io/datcom-ci/node:2024-11-19
Step #1 - "setup_python": Pulling image: python:3.11.3
Step #0 - "package_js": 2024-11-19: Pulling from datcom-ci/node
Step #0 - "package_js": b85a868b505f: Pulling fs layer
Step #0 - "package_js": 4bc2eda9354f: Pulling fs layer
Step #0 - "package_js": a407a484e74b: Pulling fs layer
Step #0 - "package_js": cc6fff309142: Pulling fs layer
Step #0 - "package_js": 09be68c4cfd1: Pulling fs layer
Step #0 - "package_js": 53042ce3711a: Pulling fs layer
Step #0 - "package_js": 0d57b3753fe5: Pulling fs layer
Step #0 - "package_js": 98a81a7f3cfb: Pulling fs layer
Step #0 - "package_js": 7cb37a50387a: Pulling fs layer
Step #0 - "package_js": 0fdf1caf0a69: Pulling fs layer
Step #0 - "package_js": 36bd6e8cd9d6: Pulling fs layer
Step #0 - "package_js": f0f263b85720: Pulling fs layer
Step #0 - "package_js": 53042ce3711a: Waiting
Step #0 - "package_js": 0d57b3753fe5: Waiting
Step #0 - "package_js": 98a81a7f3cfb: Waiting
Step #0 - "package_js": 7cb37a50387a: Waiting
Step #0 - "package_js": 0fdf1caf0a69: Waiting
Step #0 - "package_js": 36bd6e8cd9d6: Waiting
Step #0 - "package_js": f0f263b85720: Waiting
Step #0 - "package_js": cc6fff309142: Waiting
Step #0 - "package_js": 4bc2eda9354f: Verifying Checksum
Step #0 - "package_js": 4bc2eda9354f: Download complete
Step #0 - "package_js": cc6fff309142: Verifying Checksum
Step #0 - "package_js": cc6fff309142: Download complete
Step #0 - "package_js": b85a868b505f: Verifying Checksum
Step #0 - "package_js": b85a868b505f: Download complete
Step #0 - "package_js": a407a484e74b: Verifying Checksum
Step #0 - "package_js": a407a484e74b: Download complete
Step #0 - "package_js": 53042ce3711a: Verifying Checksum
Step #0 - "package_js": 53042ce3711a: Download complete
Step #0 - "package_js": 09be68c4cfd1: Verifying Checksum
Step #0 - "package_js": 09be68c4cfd1: Download complete
Step #0 - "package_js": 98a81a7f3cfb: Verifying Checksum
Step #0 - "package_js": 98a81a7f3cfb: Download complete
Step #0 - "package_js": 7cb37a50387a: Download complete
Step #0 - "package_js": 0d57b3753fe5: Verifying Checksum
Step #0 - "package_js": 0d57b3753fe5: Download complete
Step #1 - "setup_python": 3.11.3: Pulling from library/python
Step #0 - "package_js": 0fdf1caf0a69: Verifying Checksum
Step #0 - "package_js": 0fdf1caf0a69: Download complete
Step #0 - "package_js": f0f263b85720: Verifying Checksum
Step #0 - "package_js": f0f263b85720: Download complete
Step #0 - "package_js": b85a868b505f: Pull complete
Step #0 - "package_js": 4bc2eda9354f: Pull complete
Step #1 - "setup_python": bd73737482dd: Pulling fs layer
Step #1 - "setup_python": 6710592d62aa: Pulling fs layer
Step #1 - "setup_python": 75256935197e: Pulling fs layer
Step #1 - "setup_python": c1e5026c6457: Pulling fs layer
Step #1 - "setup_python": f0016544b8b9: Pulling fs layer
Step #1 - "setup_python": 1d58eee51ff2: Pulling fs layer
Step #1 - "setup_python": 93dc7b704cd1: Pulling fs layer
Step #1 - "setup_python": caefdefa531e: Pulling fs layer
Step #1 - "setup_python": f0016544b8b9: Waiting
Step #1 - "setup_python": 1d58eee51ff2: Waiting
Step #1 - "setup_python": 93dc7b704cd1: Waiting
Step #1 - "setup_python": caefdefa531e: Waiting
Step #1 - "setup_python": 75256935197e: Waiting
Step #1 - "setup_python": c1e5026c6457: Waiting
Step #1 - "setup_python": 6710592d62aa: Verifying Checksum
Step #1 - "setup_python": 6710592d62aa: Download complete
Step #1 - "setup_python": bd73737482dd: Verifying Checksum
Step #1 - "setup_python": bd73737482dd: Download complete
Step #0 - "package_js": a407a484e74b: Pull complete
Step #0 - "package_js": 36bd6e8cd9d6: Verifying Checksum
Step #0 - "package_js": 36bd6e8cd9d6: Download complete
Step #1 - "setup_python": 75256935197e: Verifying Checksum
Step #1 - "setup_python": 75256935197e: Download complete
Step #0 - "package_js": cc6fff309142: Pull complete
Step #0 - "package_js": 09be68c4cfd1: Pull complete
Step #0 - "package_js": 53042ce3711a: Pull complete
Step #1 - "setup_python": f0016544b8b9: Verifying Checksum
Step #1 - "setup_python": f0016544b8b9: Download complete
Step #0 - "package_js": 0d57b3753fe5: Pull complete
Step #0 - "package_js": 98a81a7f3cfb: Pull complete
Step #0 - "package_js": 7cb37a50387a: Pull complete
Step #0 - "package_js": 0fdf1caf0a69: Pull complete
Step #1 - "setup_python": 93dc7b704cd1: Download complete
Step #1 - "setup_python": bd73737482dd: Pull complete
Step #1 - "setup_python": 1d58eee51ff2: Verifying Checksum
Step #1 - "setup_python": 1d58eee51ff2: Download complete
Step #1 - "setup_python": 6710592d62aa: Pull complete
Step #1 - "setup_python": caefdefa531e: Verifying Checksum
Step #1 - "setup_python": caefdefa531e: Download complete
Step #1 - "setup_python": c1e5026c6457: Verifying Checksum
Step #1 - "setup_python": c1e5026c6457: Download complete
Step #1 - "setup_python": 75256935197e: Pull complete
Step #1 - "setup_python": c1e5026c6457: Pull complete
Step #1 - "setup_python": f0016544b8b9: Pull complete
Step #1 - "setup_python": 1d58eee51ff2: Pull complete
Step #1 - "setup_python": 93dc7b704cd1: Pull complete
Step #1 - "setup_python": caefdefa531e: Pull complete
Step #1 - "setup_python": Digest: sha256:3a619e3c96fd4c5fc5e1998fd4dcb1f1403eb90c4c6409c70d7e80b9468df7df
Step #1 - "setup_python": Status: Downloaded newer image for python:3.11.3
Step #1 - "setup_python": docker.io/library/python:3.11.3
Step #0 - "package_js": 36bd6e8cd9d6: Pull complete
Step #0 - "package_js": f0f263b85720: Pull complete
Step #0 - "package_js": Digest: sha256:c089dae65e1569c1f5770cd411500262d0214d43a613e9d32f340beb87c69079
Step #0 - "package_js": Status: Downloaded newer image for gcr.io/datcom-ci/node:2024-11-19
Step #0 - "package_js": gcr.io/datcom-ci/node:2024-11-19
Step #1 - "setup_python": --setup_python ### Set up python environment
Step #0 - "package_js": ### Build client-side packages
Step #1 - "setup_python": Collecting absl-py==1.4.0
Step #1 - "setup_python":   Downloading absl_py-1.4.0-py3-none-any.whl (126 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.5/126.5 kB 11.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting beautifulsoup4==4.12.2
Step #1 - "setup_python":   Downloading beautifulsoup4-4.12.2-py3-none-any.whl (142 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.0/143.0 kB 20.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting CacheControl==0.12.11
Step #1 - "setup_python":   Downloading CacheControl-0.12.11-py2.py3-none-any.whl (21 kB)
Step #1 - "setup_python": Collecting Flask==2.3.2
Step #1 - "setup_python":   Downloading Flask-2.3.2-py3-none-any.whl (96 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.9/96.9 kB 15.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting Flask-Babel==2.0.0
Step #1 - "setup_python":   Downloading Flask_Babel-2.0.0-py3-none-any.whl (9.3 kB)
Step #1 - "setup_python": Collecting Flask-Caching==2.0.1
Step #1 - "setup_python":   Downloading Flask_Caching-2.0.1-py3-none-any.whl (28 kB)
Step #1 - "setup_python": Collecting flask_cors==5.0.0
Step #1 - "setup_python":   Downloading Flask_Cors-5.0.0-py2.py3-none-any.whl (14 kB)
Step #1 - "setup_python": Collecting flask_testing==0.8.1
Step #1 - "setup_python":   Downloading Flask-Testing-0.8.1.tar.gz (45 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.2/45.2 kB 6.7 MB/s eta 0:00:00
Step #1 - "setup_python":   Preparing metadata (setup.py): started
Step #1 - "setup_python":   Preparing metadata (setup.py): finished with status 'done'
Step #1 - "setup_python": Collecting frozendict==2.3.4
Step #1 - "setup_python":   Downloading frozendict-2.3.4-py3-none-any.whl (11 kB)
Step #1 - "setup_python": Collecting geojson_rewind==1.0.1
Step #1 - "setup_python":   Downloading geojson_rewind-1.0.1-py3-none-any.whl (4.8 kB)
Step #1 - "setup_python": Collecting google-auth==2.28.1
Step #1 - "setup_python":   Downloading google_auth-2.28.1-py2.py3-none-any.whl (186 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 186.9/186.9 kB 24.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-auth-oauthlib==1.2.0
Step #1 - "setup_python":   Downloading google_auth_oauthlib-1.2.0-py2.py3-none-any.whl (24 kB)
Step #1 - "setup_python": Collecting google-api-core==2.17.1
Step #1 - "setup_python":   Downloading google_api_core-2.17.1-py3-none-any.whl (137 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.0/137.0 kB 7.2 MB/s eta 0:00:00
Step #0 - "package_js": 
Step #0 - "package_js": added 142 packages, and audited 143 packages in 4s
Step #0 - "package_js": 
Step #0 - "package_js": 24 packages are looking for funding
Step #0 - "package_js":   run `npm fund` for details
Step #0 - "package_js": 
Step #0 - "package_js": 2 vulnerabilities (1 moderate, 1 high)
Step #0 - "package_js": 
Step #0 - "package_js": To address all issues, run:
Step #0 - "package_js":   npm audit fix
Step #0 - "package_js": 
Step #0 - "package_js": Run `npm audit` for details.
Step #1 - "setup_python": Collecting google-cloud-aiplatform==1.42.1
Step #1 - "setup_python":   Downloading google_cloud_aiplatform-1.42.1-py2.py3-none-any.whl (3.5 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 89.9 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-bigtable==2.23.0
Step #1 - "setup_python":   Downloading google_cloud_bigtable-2.23.0-py2.py3-none-any.whl (357 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 357.5/357.5 kB 52.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-core==2.4.1
Step #1 - "setup_python":   Downloading google_cloud_core-2.4.1-py2.py3-none-any.whl (29 kB)
Step #1 - "setup_python": Collecting google-cloud-logging==3.10.0
Step #1 - "setup_python":   Downloading google_cloud_logging-3.10.0-py2.py3-none-any.whl (213 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 213.4/213.4 kB 36.7 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-secret-manager==2.18.3
Step #1 - "setup_python":   Downloading google_cloud_secret_manager-2.18.3-py2.py3-none-any.whl (119 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 119.7/119.7 kB 23.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-storage==2.15.0
Step #1 - "setup_python":   Downloading google_cloud_storage-2.15.0-py2.py3-none-any.whl (123 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 123.5/123.5 kB 24.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting gunicorn==22.0.0
Step #1 - "setup_python":   Downloading gunicorn-22.0.0-py3-none-any.whl (84 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.4/84.4 kB 17.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting isort==5.10.0
Step #1 - "setup_python":   Downloading isort-5.10.0-py3-none-any.whl (103 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.4/103.4 kB 21.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting jinja2==3.1.5
Step #1 - "setup_python":   Downloading jinja2-3.1.5-py3-none-any.whl (134 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.6/134.6 kB 24.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting json5==0.9.14
Step #1 - "setup_python":   Downloading json5-0.9.14-py2.py3-none-any.whl (19 kB)
Step #1 - "setup_python": Collecting langdetect==1.0.9
Step #1 - "setup_python":   Downloading langdetect-1.0.9.tar.gz (981 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 981.5/981.5 kB 67.9 MB/s eta 0:00:00
Step #1 - "setup_python":   Preparing metadata (setup.py): started
Step #1 - "setup_python":   Preparing metadata (setup.py): finished with status 'done'
Step #1 - "setup_python": Collecting markupsafe==2.1.2
Step #1 - "setup_python":   Downloading MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27 kB)
Step #1 - "setup_python": Collecting parameterized==0.8.1
Step #1 - "setup_python":   Downloading parameterized-0.8.1-py2.py3-none-any.whl (26 kB)
Step #1 - "setup_python": Collecting pillow==10.3.0
Step #1 - "setup_python":   Downloading pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.5 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 22.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting protobuf==4.25.3
Step #1 - "setup_python":   Downloading protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl (294 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.6/294.6 kB 41.3 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting PyGithub==1.58.2
Step #1 - "setup_python":   Downloading PyGithub-1.58.2-py3-none-any.whl (312 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 312.5/312.5 kB 38.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting pyOpenSSL==23.2.0
Step #1 - "setup_python":   Downloading pyOpenSSL-23.2.0-py3-none-any.whl (59 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.0/59.0 kB 10.9 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting python-dateutil==2.8.2
Step #1 - "setup_python":   Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 34.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting pytest-rerunfailures==10.2
Step #1 - "setup_python":   Downloading pytest_rerunfailures-10.2-py3-none-any.whl (11 kB)
Step #1 - "setup_python": Collecting pytest-xdist==3.2.1
Step #1 - "setup_python":   Downloading pytest_xdist-3.2.1-py3-none-any.whl (41 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.0/41.0 kB 6.6 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting PyYAML==6.0.1
Step #1 - "setup_python":   Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 757.7/757.7 kB 64.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting redis==4.5.4
Step #1 - "setup_python":   Downloading redis-4.5.4-py3-none-any.whl (238 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 238.9/238.9 kB 30.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting requests==2.31.0
Step #1 - "setup_python":   Downloading requests-2.31.0-py3-none-any.whl (62 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 11.3 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting selenium==4.21.0
Step #1 - "setup_python":   Downloading selenium-4.21.0-py3-none-any.whl (9.5 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 113.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting typing-extensions==4.10.0
Step #1 - "setup_python":   Downloading typing_extensions-4.10.0-py3-none-any.whl (33 kB)
Step #1 - "setup_python": Collecting webdriver-manager==4.0.0
Step #1 - "setup_python":   Downloading webdriver_manager-4.0.0-py2.py3-none-any.whl (27 kB)
Step #1 - "setup_python": Collecting Werkzeug==3.0.6
Step #1 - "setup_python":   Downloading werkzeug-3.0.6-py3-none-any.whl (227 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 228.0/228.0 kB 33.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting wheel==0.38.1
Step #1 - "setup_python":   Downloading wheel-0.38.1-py3-none-any.whl (35 kB)
Step #1 - "setup_python": Collecting soupsieve>1.2
Step #1 - "setup_python":   Downloading soupsieve-2.6-py3-none-any.whl (36 kB)
Step #1 - "setup_python": Collecting msgpack>=0.5.2
Step #1 - "setup_python":   Downloading msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (403 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 403.7/403.7 kB 45.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting itsdangerous>=2.1.2
Step #1 - "setup_python":   Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Step #1 - "setup_python": Collecting click>=8.1.3
Step #1 - "setup_python":   Downloading click-8.1.8-py3-none-any.whl (98 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.2/98.2 kB 17.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting blinker>=1.6.2
Step #1 - "setup_python":   Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
Step #1 - "setup_python": Collecting pytz
Step #1 - "setup_python":   Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 49.9 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting Babel>=2.3
Step #1 - "setup_python":   Downloading babel-2.16.0-py3-none-any.whl (9.6 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 111.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting cachelib>=0.9.0
Step #1 - "setup_python":   Downloading cachelib-0.13.0-py3-none-any.whl (20 kB)
Step #1 - "setup_python": Collecting cachetools<6.0,>=2.0.0
Step #1 - "setup_python":   Downloading cachetools-5.5.0-py3-none-any.whl (9.5 kB)
Step #1 - "setup_python": Collecting pyasn1-modules>=0.2.1
Step #1 - "setup_python":   Downloading pyasn1_modules-0.4.1-py3-none-any.whl (181 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 181.5/181.5 kB 28.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting rsa<5,>=3.1.4
Step #1 - "setup_python":   Downloading rsa-4.9-py3-none-any.whl (34 kB)
Step #1 - "setup_python": Collecting requests-oauthlib>=0.7.0
Step #1 - "setup_python":   Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)
Step #1 - "setup_python": Collecting googleapis-common-protos<2.0.dev0,>=1.56.2
Step #1 - "setup_python":   Downloading googleapis_common_protos-1.66.0-py2.py3-none-any.whl (221 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 221.7/221.7 kB 33.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.34.1
Step #1 - "setup_python":   Downloading google_api_core-2.24.0-py3-none-any.whl (158 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 158.6/158.6 kB 16.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting proto-plus<2.0.0dev,>=1.22.0
Step #1 - "setup_python":   Downloading proto_plus-1.25.0-py3-none-any.whl (50 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 8.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting packaging>=14.3
Step #1 - "setup_python":   Downloading packaging-24.2-py3-none-any.whl (65 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 10.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-bigquery<4.0.0dev,>=1.15.0
Step #1 - "setup_python":   Downloading google_cloud_bigquery-3.27.0-py2.py3-none-any.whl (240 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 240.1/240.1 kB 36.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-cloud-resource-manager<3.0.0dev,>=1.3.3
Step #1 - "setup_python":   Downloading google_cloud_resource_manager-1.14.0-py2.py3-none-any.whl (384 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 384.1/384.1 kB 42.6 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting shapely<3.0.0dev
Step #1 - "setup_python":   Downloading shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 87.4 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting grpc-google-iam-v1<1.0.0dev,>=0.12.4
Step #1 - "setup_python":   Downloading grpc_google_iam_v1-0.13.1-py2.py3-none-any.whl (24 kB)
Step #1 - "setup_python": Collecting google-cloud-appengine-logging<2.0.0dev,>=0.1.0
Step #1 - "setup_python":   Downloading google_cloud_appengine_logging-1.5.0-py2.py3-none-any.whl (15 kB)
Step #1 - "setup_python": Collecting google-cloud-audit-log<1.0.0dev,>=0.1.0
Step #1 - "setup_python":   Downloading google_cloud_audit_log-0.3.0-py2.py3-none-any.whl (27 kB)
Step #1 - "setup_python": Collecting google-resumable-media>=2.6.0
Step #1 - "setup_python":   Downloading google_resumable_media-2.7.2-py2.py3-none-any.whl (81 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.3/81.3 kB 13.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-crc32c<2.0dev,>=1.0
Step #1 - "setup_python":   Downloading google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32 kB)
Step #1 - "setup_python": Collecting six
Step #1 - "setup_python":   Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Step #1 - "setup_python": Collecting deprecated
Step #1 - "setup_python":   Downloading Deprecated-1.2.15-py2.py3-none-any.whl (9.9 kB)
Step #1 - "setup_python": Collecting pyjwt[crypto]>=2.4.0
Step #1 - "setup_python":   Downloading PyJWT-2.10.1-py3-none-any.whl (22 kB)
Step #1 - "setup_python": Collecting pynacl>=1.4.0
Step #1 - "setup_python":   Downloading PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 856.7/856.7 kB 66.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting cryptography!=40.0.0,!=40.0.1,<42,>=38.0.0
Step #1 - "setup_python":   Downloading cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl (4.4 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 80.9 MB/s eta 0:00:00
Step #1 - "setup_python": Requirement already satisfied: setuptools>=40.0 in ./.env/lib/python3.11/site-packages (from pytest-rerunfailures==10.2->-r server/requirements.txt (line 32)) (65.5.0)
Step #1 - "setup_python": Collecting pytest>=5.3
Step #1 - "setup_python":   Downloading pytest-8.3.4-py3-none-any.whl (343 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 343.1/343.1 kB 24.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting execnet>=1.1
Step #1 - "setup_python":   Downloading execnet-2.1.1-py3-none-any.whl (40 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 kB 2.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting async-timeout>=4.0.2
Step #1 - "setup_python":   Downloading async_timeout-5.0.1-py3-none-any.whl (6.2 kB)
Step #1 - "setup_python": Collecting charset-normalizer<4,>=2
Step #1 - "setup_python":   Downloading charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.9/143.9 kB 8.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting idna<4,>=2.5
Step #1 - "setup_python":   Downloading idna-3.10-py3-none-any.whl (70 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 6.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting urllib3<3,>=1.21.1
Step #1 - "setup_python":   Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.4/128.4 kB 13.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting certifi>=2017.4.17
Step #1 - "setup_python":   Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 164.9/164.9 kB 13.7 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting trio~=0.17
Step #1 - "setup_python":   Downloading trio-0.28.0-py3-none-any.whl (486 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 486.3/486.3 kB 44.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting trio-websocket~=0.9
Step #1 - "setup_python":   Downloading trio_websocket-0.11.1-py3-none-any.whl (17 kB)
Step #1 - "setup_python": Collecting python-dotenv
Step #1 - "setup_python":   Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)
Step #1 - "setup_python": Collecting cffi>=1.12
Step #1 - "setup_python":   Downloading cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (467 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 467.2/467.2 kB 23.2 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.34.1
Step #1 - "setup_python":   Downloading google_api_core-2.23.0-py3-none-any.whl (156 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.6/156.6 kB 24.3 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.22.0-py3-none-any.whl (156 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.5/156.5 kB 14.5 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.21.0-py3-none-any.whl (156 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.4/156.4 kB 22.1 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.20.0-py3-none-any.whl (142 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 142.2/142.2 kB 14.6 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.19.2-py3-none-any.whl (139 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.4/139.4 kB 19.1 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.19.1-py3-none-any.whl (139 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.4/139.4 kB 13.4 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.19.0-py3-none-any.whl (139 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.0/139.0 kB 13.4 MB/s eta 0:00:00
Step #1 - "setup_python":   Downloading google_api_core-2.18.0-py3-none-any.whl (138 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 138.3/138.3 kB 17.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting grpcio<2.0dev,>=1.33.2
Step #1 - "setup_python":   Downloading grpcio-1.68.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 61.8 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting grpcio-status<2.0.dev0,>=1.33.2
Step #1 - "setup_python":   Downloading grpcio_status-1.68.1-py3-none-any.whl (14 kB)
Step #1 - "setup_python": Collecting pyasn1<0.7.0,>=0.4.6
Step #1 - "setup_python":   Downloading pyasn1-0.6.1-py3-none-any.whl (83 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.1/83.1 kB 13.0 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting iniconfig
Step #1 - "setup_python":   Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Step #1 - "setup_python": Collecting pluggy<2,>=1.5
Step #1 - "setup_python":   Downloading pluggy-1.5.0-py3-none-any.whl (20 kB)
Step #1 - "setup_python": Collecting oauthlib>=3.0.0
Step #1 - "setup_python":   Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 20.6 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting numpy<3,>=1.14
Step #1 - "setup_python":   Downloading numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 91.7 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting attrs>=23.2.0
Step #1 - "setup_python":   Downloading attrs-24.3.0-py3-none-any.whl (63 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.4/63.4 kB 8.1 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting sortedcontainers
Step #1 - "setup_python":   Downloading sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)
Step #1 - "setup_python": Collecting outcome
Step #1 - "setup_python":   Downloading outcome-1.3.0.post0-py2.py3-none-any.whl (10 kB)
Step #1 - "setup_python": Collecting sniffio>=1.3.0
Step #1 - "setup_python":   Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
Step #1 - "setup_python": Collecting wsproto>=0.14
Step #1 - "setup_python":   Downloading wsproto-1.2.0-py3-none-any.whl (24 kB)
Step #1 - "setup_python": Collecting pysocks!=1.5.7,<2.0,>=1.5.6
Step #1 - "setup_python":   Downloading PySocks-1.7.1-py3-none-any.whl (16 kB)
Step #1 - "setup_python": Collecting wrapt<2,>=1.10
Step #1 - "setup_python":   Downloading wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (83 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.2/83.2 kB 12.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting pycparser
Step #1 - "setup_python":   Downloading pycparser-2.22-py3-none-any.whl (117 kB)
Step #1 - "setup_python":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 19.5 MB/s eta 0:00:00
Step #1 - "setup_python": Collecting grpcio-status<2.0.dev0,>=1.33.2
Step #1 - "setup_python":   Downloading grpcio_status-1.68.0-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.67.1-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.67.0-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.66.2-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.66.1-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.66.0-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.65.5-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.65.4-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.65.2-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.65.1-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.64.3-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.64.1-py3-none-any.whl (14 kB)
Step #1 - "setup_python":   Downloading grpcio_status-1.64.0-py3-none-any.whl (14 kB)
Step #1 - "
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/cloud-build/builds/f050480e-8a01-4ae6-904d-6be76eeda85f?project=879489846695.]
...
s has loaded.
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.ID, 'subject-page-main-pane'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Store a list of all the charts.
Step #2 - "flask_webdriver_test":       event_maps = self.driver.find_elements(By.CLASS_NAME,
Step #2 - "flask_webdriver_test":                                              'disaster-event-map-tile')
Step #2 - "flask_webdriver_test":       # Assert there are 5+ maps.
Step #2 - "flask_webdriver_test": >     self.assertGreater(len(event_maps), 5)
Step #2 - "flask_webdriver_test": E     AssertionError: 0 not greater than 5
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/tests/disaster_page_test.py:56: AssertionError
Step #2 - "flask_webdriver_test": _________________________ TestMap.test_charts_from_url _________________________
Step #2 - "flask_webdriver_test": [gw18] linux -- Python 3.11.6 /workspace/.env/bin/python3
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <workspace.server.webdriver.tests.map_test.TestMap testMethod=test_charts_from_url>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def test_charts_from_url(self):
Step #2 - "flask_webdriver_test":       """Given the url directly, test the page shows up correctly"""
Step #2 - "flask_webdriver_test":       # Load Map Tool page with Statistical Variables.
Step #2 - "flask_webdriver_test":       self.driver.get(self.url_ + MAP_URL + URL_HASH_1)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait until the chart has loaded.
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.ID, 'map-items'))
Step #2 - "flask_webdriver_test": >     WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/shared_tests/map_test.py:52: 
Step #2 - "flask_webdriver_test": _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <selenium.webdriver.support.wait.WebDriverWait (session="1c7cd47fa4955c9f7e69385621ba8936")>
Step #2 - "flask_webdriver_test": method = <function presence_of_element_located.<locals>._predicate at 0x7fa3b7faf920>
Step #2 - "flask_webdriver_test": message = ''
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = "") -> T:
Step #2 - "flask_webdriver_test":         """Calls the method provided with the driver as an argument until the \
Step #2 - "flask_webdriver_test":         return value does not evaluate to ``False``.
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         :param method: callable(WebDriver)
Step #2 - "flask_webdriver_test":         :param message: optional message for :exc:`TimeoutException`
Step #2 - "flask_webdriver_test":         :returns: the result of the last call to `method`
Step #2 - "flask_webdriver_test":         :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
Step #2 - "flask_webdriver_test":         """
Step #2 - "flask_webdriver_test":         screen = None
Step #2 - "flask_webdriver_test":         stacktrace = None
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         end_time = time.monotonic() + self._timeout
Step #2 - "flask_webdriver_test":         while True:
Step #2 - "flask_webdriver_test":             try:
Step #2 - "flask_webdriver_test":                 value = method(self._driver)
Step #2 - "flask_webdriver_test":                 if value:
Step #2 - "flask_webdriver_test":                     return value
Step #2 - "flask_webdriver_test":             except self._ignored_exceptions as exc:
Step #2 - "flask_webdriver_test":                 screen = getattr(exc, "screen", None)
Step #2 - "flask_webdriver_test":                 stacktrace = getattr(exc, "stacktrace", None)
Step #2 - "flask_webdriver_test":             time.sleep(self._poll)
Step #2 - "flask_webdriver_test":             if time.monotonic() > end_time:
Step #2 - "flask_webdriver_test":                 break
Step #2 - "flask_webdriver_test": >       raise TimeoutException(message, screen, stacktrace)
Step #2 - "flask_webdriver_test": E       selenium.common.exceptions.TimeoutException: Message: 
Step #2 - "flask_webdriver_test": E       Stacktrace:
Step #2 - "flask_webdriver_test": E       #0 0x55b333f14e3a <unknown>
Step #2 - "flask_webdriver_test": E       #1 0x55b333bfe45c <unknown>
Step #2 - "flask_webdriver_test": E       #2 0x55b333c4a5b5 <unknown>
Step #2 - "flask_webdriver_test": E       #3 0x55b333c4a671 <unknown>
Step #2 - "flask_webdriver_test": E       #4 0x55b333c8ef14 <unknown>
Step #2 - "flask_webdriver_test": E       #5 0x55b333c6d4dd <unknown>
Step #2 - "flask_webdriver_test": E       #6 0x55b333c8c2cc <unknown>
Step #2 - "flask_webdriver_test": E       #7 0x55b333c6d253 <unknown>
Step #2 - "flask_webdriver_test": E       #8 0x55b333c3d1c7 <unknown>
Step #2 - "flask_webdriver_test": E       #9 0x55b333c3db3e <unknown>
Step #2 - "flask_webdriver_test": E       #10 0x55b333edb27b <unknown>
Step #2 - "flask_webdriver_test": E       #11 0x55b333edf327 <unknown>
Step #2 - "flask_webdriver_test": E       #12 0x55b333ec7dae <unknown>
Step #2 - "flask_webdriver_test": E       #13 0x55b333edfdf2 <unknown>
Step #2 - "flask_webdriver_test": E       #14 0x55b333eac74f <unknown>
Step #2 - "flask_webdriver_test": E       #15 0x55b333f04128 <unknown>
Step #2 - "flask_webdriver_test": E       #16 0x55b333f042fb <unknown>
Step #2 - "flask_webdriver_test": E       #17 0x55b333f13f6c <unknown>
Step #2 - "flask_webdriver_test": E       #18 0x7f3a594c5134 <unknown>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": .env/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:105: TimeoutException
Step #2 - "flask_webdriver_test": ________________________ TestMap.test_landing_page_link ________________________
Step #2 - "flask_webdriver_test": [gw19] linux -- Python 3.11.6 /workspace/.env/bin/python3
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <workspace.server.webdriver.tests.map_test.TestMap testMethod=test_landing_page_link>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def test_landing_page_link(self):
Step #2 - "flask_webdriver_test":       """Test for landing page link."""
Step #2 - "flask_webdriver_test":       self.driver.get(self.url_ + MAP_URL)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Click on first link on landing page
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.ID, 'placeholder-container'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":       self.driver.find_element(
Step #2 - "flask_webdriver_test":           By.XPATH, '//*[@id="placeholder-container"]/ul/li[2]/a[1]').click()
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Assert chart loads
Step #2 - "flask_webdriver_test":       shared.wait_for_loading(self.driver)
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.ID, 'map-items'))
Step #2 - "flask_webdriver_test": >     WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/shared_tests/map_test.py:186: 
Step #2 - "flask_webdriver_test": _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <selenium.webdriver.support.wait.WebDriverWait (session="2360f6cae0c75e73bf181af381cd0c74")>
Step #2 - "flask_webdriver_test": method = <function presence_of_element_located.<locals>._predicate at 0x7f7daf7b7920>
Step #2 - "flask_webdriver_test": message = ''
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = "") -> T:
Step #2 - "flask_webdriver_test":         """Calls the method provided with the driver as an argument until the \
Step #2 - "flask_webdriver_test":         return value does not evaluate to ``False``.
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         :param method: callable(WebDriver)
Step #2 - "flask_webdriver_test":         :param message: optional message for :exc:`TimeoutException`
Step #2 - "flask_webdriver_test":         :returns: the result of the last call to `method`
Step #2 - "flask_webdriver_test":         :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
Step #2 - "flask_webdriver_test":         """
Step #2 - "flask_webdriver_test":         screen = None
Step #2 - "flask_webdriver_test":         stacktrace = None
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         end_time = time.monotonic() + self._timeout
Step #2 - "flask_webdriver_test":         while True:
Step #2 - "flask_webdriver_test":             try:
Step #2 - "flask_webdriver_test":                 value = method(self._driver)
Step #2 - "flask_webdriver_test":                 if value:
Step #2 - "flask_webdriver_test":                     return value
Step #2 - "flask_webdriver_test":             except self._ignored_exceptions as exc:
Step #2 - "flask_webdriver_test":                 screen = getattr(exc, "screen", None)
Step #2 - "flask_webdriver_test":                 stacktrace = getattr(exc, "stacktrace", None)
Step #2 - "flask_webdriver_test":             time.sleep(self._poll)
Step #2 - "flask_webdriver_test":             if time.monotonic() > end_time:
Step #2 - "flask_webdriver_test":                 break
Step #2 - "flask_webdriver_test": >       raise TimeoutException(message, screen, stacktrace)
Step #2 - "flask_webdriver_test": E       selenium.common.exceptions.TimeoutException: Message: 
Step #2 - "flask_webdriver_test": E       Stacktrace:
Step #2 - "flask_webdriver_test": E       #0 0x55cbb87a7e3a <unknown>
Step #2 - "flask_webdriver_test": E       #1 0x55cbb849145c <unknown>
Step #2 - "flask_webdriver_test": E       #2 0x55cbb84dd5b5 <unknown>
Step #2 - "flask_webdriver_test": E       #3 0x55cbb84dd671 <unknown>
Step #2 - "flask_webdriver_test": E       #4 0x55cbb8521f14 <unknown>
Step #2 - "flask_webdriver_test": E       #5 0x55cbb85004dd <unknown>
Step #2 - "flask_webdriver_test": E       #6 0x55cbb851f2cc <unknown>
Step #2 - "flask_webdriver_test": E       #7 0x55cbb8500253 <unknown>
Step #2 - "flask_webdriver_test": E       #8 0x55cbb84d01c7 <unknown>
Step #2 - "flask_webdriver_test": E       #9 0x55cbb84d0b3e <unknown>
Step #2 - "flask_webdriver_test": E       #10 0x55cbb876e27b <unknown>
Step #2 - "flask_webdriver_test": E       #11 0x55cbb8772327 <unknown>
Step #2 - "flask_webdriver_test": E       #12 0x55cbb875adae <unknown>
Step #2 - "flask_webdriver_test": E       #13 0x55cbb8772df2 <unknown>
Step #2 - "flask_webdriver_test": E       #14 0x55cbb873f74f <unknown>
Step #2 - "flask_webdriver_test": E       #15 0x55cbb8797128 <unknown>
Step #2 - "flask_webdriver_test": E       #16 0x55cbb87972fb <unknown>
Step #2 - "flask_webdriver_test": E       #17 0x55cbb87a6f6c <unknown>
Step #2 - "flask_webdriver_test": E       #18 0x7f1767bef134 <unknown>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": .env/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:105: TimeoutException
Step #2 - "flask_webdriver_test": _____________________ TestMap.test_manually_enter_options ______________________
Step #2 - "flask_webdriver_test": [gw17] linux -- Python 3.11.6 /workspace/.env/bin/python3
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <workspace.server.webdriver.tests.map_test.TestMap testMethod=test_manually_enter_options>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def test_manually_enter_options(self):
Step #2 - "flask_webdriver_test":       """Test entering place and stat var options manually will cause chart to
Step #2 - "flask_webdriver_test":           show up.
Step #2 - "flask_webdriver_test":           """
Step #2 - "flask_webdriver_test":       self.driver.get(self.url_ + MAP_URL)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait until search box is present.
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.ID, 'ac'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":       search_box_input = self.driver.find_element(By.ID, 'ac')
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Type california into the search box.
Step #2 - "flask_webdriver_test":       search_box_input.send_keys(PLACE_SEARCH_CA)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait until there is at least one result in autocomplete results.
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.CLASS_NAME, 'pac-item'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Click on the first result.
Step #2 - "flask_webdriver_test":       first_result = self.driver.find_element(By.CSS_SELECTOR,
Step #2 - "flask_webdriver_test":                                               '.pac-item:nth-child(1)')
Step #2 - "flask_webdriver_test":       first_result.click()
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.CLASS_NAME, 'chip'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait until place type selector populates with options
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.CSS_SELECTOR, "option[value='County']"))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Click on 'County' place type option
Step #2 - "flask_webdriver_test":       place_type = self.driver.find_element(By.CSS_SELECTOR,
Step #2 - "flask_webdriver_test":                                             "option[value='County']")
Step #2 - "flask_webdriver_test":       place_type.click()
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Choose stat var
Step #2 - "flask_webdriver_test":       shared.wait_for_loading(self.driver)
Step #2 - "flask_webdriver_test":       shared.click_sv_group(self.driver, "Demographics")
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.ID, 'Median_Age_Persondc/g/Demographics-Median_Age_Person'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":       self.driver.find_element(
Step #2 - "flask_webdriver_test":           By.ID, 'Median_Age_Persondc/g/Demographics-Median_Age_Person').click()
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Assert chart is correct.
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.ID, 'map-items'))
Step #2 - "flask_webdriver_test": >     WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/shared_tests/map_test.py:161: 
Step #2 - "flask_webdriver_test": _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <selenium.webdriver.support.wait.WebDriverWait (session="a867bb46d9b2af3e9cafcd4b4f553621")>
Step #2 - "flask_webdriver_test": method = <function presence_of_element_located.<locals>._predicate at 0x7fb3fd19f240>
Step #2 - "flask_webdriver_test": message = ''
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = "") -> T:
Step #2 - "flask_webdriver_test":         """Calls the method provided with the driver as an argument until the \
Step #2 - "flask_webdriver_test":         return value does not evaluate to ``False``.
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         :param method: callable(WebDriver)
Step #2 - "flask_webdriver_test":         :param message: optional message for :exc:`TimeoutException`
Step #2 - "flask_webdriver_test":         :returns: the result of the last call to `method`
Step #2 - "flask_webdriver_test":         :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
Step #2 - "flask_webdriver_test":         """
Step #2 - "flask_webdriver_test":         screen = None
Step #2 - "flask_webdriver_test":         stacktrace = None
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         end_time = time.monotonic() + self._timeout
Step #2 - "flask_webdriver_test":         while True:
Step #2 - "flask_webdriver_test":             try:
Step #2 - "flask_webdriver_test":                 value = method(self._driver)
Step #2 - "flask_webdriver_test":                 if value:
Step #2 - "flask_webdriver_test":                     return value
Step #2 - "flask_webdriver_test":             except self._ignored_exceptions as exc:
Step #2 - "flask_webdriver_test":                 screen = getattr(exc, "screen", None)
Step #2 - "flask_webdriver_test":                 stacktrace = getattr(exc, "stacktrace", None)
Step #2 - "flask_webdriver_test":             time.sleep(self._poll)
Step #2 - "flask_webdriver_test":             if time.monotonic() > end_time:
Step #2 - "flask_webdriver_test":                 break
Step #2 - "flask_webdriver_test": >       raise TimeoutException(message, screen, stacktrace)
Step #2 - "flask_webdriver_test": E       selenium.common.exceptions.TimeoutException: Message: 
Step #2 - "flask_webdriver_test": E       Stacktrace:
Step #2 - "flask_webdriver_test": E       #0 0x5652cf031e3a <unknown>
Step #2 - "flask_webdriver_test": E       #1 0x5652ced1b45c <unknown>
Step #2 - "flask_webdriver_test": E       #2 0x5652ced675b5 <unknown>
Step #2 - "flask_webdriver_test": E       #3 0x5652ced67671 <unknown>
Step #2 - "flask_webdriver_test": E       #4 0x5652cedabf14 <unknown>
Step #2 - "flask_webdriver_test": E       #5 0x5652ced8a4dd <unknown>
Step #2 - "flask_webdriver_test": E       #6 0x5652ceda92cc <unknown>
Step #2 - "flask_webdriver_test": E       #7 0x5652ced8a253 <unknown>
Step #2 - "flask_webdriver_test": E       #8 0x5652ced5a1c7 <unknown>
Step #2 - "flask_webdriver_test": E       #9 0x5652ced5ab3e <unknown>
Step #2 - "flask_webdriver_test": E       #10 0x5652ceff827b <unknown>
Step #2 - "flask_webdriver_test": E       #11 0x5652ceffc327 <unknown>
Step #2 - "flask_webdriver_test": E       #12 0x5652cefe4dae <unknown>
Step #2 - "flask_webdriver_test": E       #13 0x5652ceffcdf2 <unknown>
Step #2 - "flask_webdriver_test": E       #14 0x5652cefc974f <unknown>
Step #2 - "flask_webdriver_test": E       #15 0x5652cf021128 <unknown>
Step #2 - "flask_webdriver_test": E       #16 0x5652cf0212fb <unknown>
Step #2 - "flask_webdriver_test": E       #17 0x5652cf030f6c <unknown>
Step #2 - "flask_webdriver_test": E       #18 0x7ff0adbb1134 <unknown>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": .env/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:105: TimeoutException
Step #2 - "flask_webdriver_test": _________________ TestBrowser.test_observation_chart_redirect __________________
Step #2 - "flask_webdriver_test": [gw0] linux -- Python 3.11.6 /workspace/.env/bin/python3
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <workspace.server.webdriver.tests.browser_test.TestBrowser testMethod=test_observation_chart_redirect>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def test_observation_chart_redirect(self):
Step #2 - "flask_webdriver_test":       """Test that the observation chart observation node links can redirect properly"""
Step #2 - "flask_webdriver_test":       # Load California population browser page.
Step #2 - "flask_webdriver_test":       self.driver.get(self.url_ + CA_POPULATION_URL)
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located(
Step #2 - "flask_webdriver_test":           (By.XPATH, '//*[@id="node-content"]/div[1]/div/table'))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Click the point on the chart for the year 1850
Step #2 - "flask_webdriver_test":       element_present = EC.presence_of_element_located((By.XPATH, (
Step #2 - "flask_webdriver_test":           '//*[@id="node-content"]/div[2]/div/div[1]/div[2]/div/div[2]/div/*[name()="svg"]/'
Step #2 - "flask_webdriver_test":           + '*[name()="g"][4]/*[name()="g"]/*[name()="circle"][1]')))
Step #2 - "flask_webdriver_test":       WebDriverWait(self.driver, self.TIMEOUT_SEC).until(element_present)
Step #2 - "flask_webdriver_test":       point = self.driver.find_element(By.XPATH, (
Step #2 - "flask_webdriver_test":           '//*[@id="node-content"]/div[2]/div/div[1]/div[2]/div/div[2]/div/*[name()="svg"]/'
Step #2 - "flask_webdriver_test":           + '*[name()="g"][4]/*[name()="g"]/*[name()="circle"][1]'))
Step #2 - "flask_webdriver_test":       point.click()
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait for the new page to open in a new tab
Step #2 - "flask_webdriver_test":       new_page_opened = EC.number_of_windows_to_be(2)
Step #2 - "flask_webdriver_test": >     WebDriverWait(self.driver, self.TIMEOUT_SEC).until(new_page_opened)
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/tests/browser_test.py:173: 
Step #2 - "flask_webdriver_test": _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <selenium.webdriver.support.wait.WebDriverWait (session="c17e01e09134afa04971f70b31d81893")>
Step #2 - "flask_webdriver_test": method = <function number_of_windows_to_be.<locals>._predicate at 0x7ffb9a1d02c0>
Step #2 - "flask_webdriver_test": message = ''
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = "") -> T:
Step #2 - "flask_webdriver_test":         """Calls the method provided with the driver as an argument until the \
Step #2 - "flask_webdriver_test":         return value does not evaluate to ``False``.
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         :param method: callable(WebDriver)
Step #2 - "flask_webdriver_test":         :param message: optional message for :exc:`TimeoutException`
Step #2 - "flask_webdriver_test":         :returns: the result of the last call to `method`
Step #2 - "flask_webdriver_test":         :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
Step #2 - "flask_webdriver_test":         """
Step #2 - "flask_webdriver_test":         screen = None
Step #2 - "flask_webdriver_test":         stacktrace = None
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         end_time = time.monotonic() + self._timeout
Step #2 - "flask_webdriver_test":         while True:
Step #2 - "flask_webdriver_test":             try:
Step #2 - "flask_webdriver_test":                 value = method(self._driver)
Step #2 - "flask_webdriver_test":                 if value:
Step #2 - "flask_webdriver_test":                     return value
Step #2 - "flask_webdriver_test":             except self._ignored_exceptions as exc:
Step #2 - "flask_webdriver_test":                 screen = getattr(exc, "screen", None)
Step #2 - "flask_webdriver_test":                 stacktrace = getattr(exc, "stacktrace", None)
Step #2 - "flask_webdriver_test":             time.sleep(self._poll)
Step #2 - "flask_webdriver_test":             if time.monotonic() > end_time:
Step #2 - "flask_webdriver_test":                 break
Step #2 - "flask_webdriver_test": >       raise TimeoutException(message, screen, stacktrace)
Step #2 - "flask_webdriver_test": E       selenium.common.exceptions.TimeoutException: Message:
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": .env/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:105: TimeoutException
Step #2 - "flask_webdriver_test": _______________________ TestVisMap.test_charts_from_url ________________________
Step #2 - "flask_webdriver_test": [gw19] linux -- Python 3.11.6 /workspace/.env/bin/python3
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <workspace.server.webdriver.tests.vis_map_test.TestVisMap testMethod=test_charts_from_url>
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def test_charts_from_url(self):
Step #2 - "flask_webdriver_test":       """Given the url directly, test the page shows up correctly"""
Step #2 - "flask_webdriver_test":       self.driver.get(self.url_ + MAP_URL + URL_HASH_1)
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":       # Wait until the chart has loaded.
Step #2 - "flask_webdriver_test": >     WebDriverWait(self.driver, self.TIMEOUT_SEC).until(shared.charts_rendered)
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": server/webdriver/shared_tests/vis_map_test.py:91: 
Step #2 - "flask_webdriver_test": _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": self = <selenium.webdriver.support.wait.WebDriverWait (session="0cab11734dde947ef79dcab37eeac4a5")>
Step #2 - "flask_webdriver_test": method = <function charts_rendered at 0x7f7daf915d00>, message = ''
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test":     def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = "") -> T:
Step #2 - "flask_webdriver_test":         """Calls the method provided with the driver as an argument until the \
Step #2 - "flask_webdriver_test":         return value does not evaluate to ``False``.
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         :param method: callable(WebDriver)
Step #2 - "flask_webdriver_test":         :param message: optional message for :exc:`TimeoutException`
Step #2 - "flask_webdriver_test":         :returns: the result of the last call to `method`
Step #2 - "flask_webdriver_test":         :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
Step #2 - "flask_webdriver_test":         """
Step #2 - "flask_webdriver_test":         screen = None
Step #2 - "flask_webdriver_test":         stacktrace = None
Step #2 - "flask_webdriver_test":     
Step #2 - "flask_webdriver_test":         end_time = time.monotonic() + self._timeout
Step #2 - "flask_webdriver_test":         while True:
Step #2 - "flask_webdriver_test":             try:
Step #2 - "flask_webdriver_test":                 value = method(self._driver)
Step #2 - "flask_webdriver_test":                 if value:
Step #2 - "flask_webdriver_test":                     return value
Step #2 - "flask_webdriver_test":             except self._ignored_exceptions as exc:
Step #2 - "flask_webdriver_test":                 screen = getattr(exc, "screen", None)
Step #2 - "flask_webdriver_test":                 stacktrace = getattr(exc, "stacktrace", None)
Step #2 - "flask_webdriver_test":             time.sleep(self._poll)
Step #2 - "flask_webdriver_test":             if time.monotonic() > end_time:
Step #2 - "flask_webdriver_test":                 break
Step #2 - "flask_webdriver_test": >       raise TimeoutException(message, screen, stacktrace)
Step #2 - "flask_webdriver_test": E       selenium.common.exceptions.TimeoutException: Message:
Step #2 - "flask_webdriver_test": 
Step #2 - "flask_webdriver_test": .env/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:105: TimeoutException
Step #2 - "flask_webdriver_test": =============================== warnings summary ===============================
Step #2 - "flask_webdriver_test": .env/lib/python3.11/sit