Test on Emscripten with Pyodide & Chrome / Firefox / Node.js
(session: nox.Session, runner: str)
| 259 | "runner", ["node", "firefox", "chrome"], ids=["node", "firefox", "chrome"] |
| 260 | ) |
| 261 | def emscripten(session: nox.Session, runner: str) -> None: |
| 262 | """Test on Emscripten with Pyodide & Chrome / Firefox / Node.js""" |
| 263 | session.env["UV_PROJECT_ENVIRONMENT"] = session.virtualenv.location |
| 264 | if runner == "node": |
| 265 | print( |
| 266 | "Node version:", |
| 267 | session.run("node", "--version", silent=True, external=True), |
| 268 | ) |
| 269 | # make sure we have a dist dir for pyodide |
| 270 | dist_dir = None |
| 271 | if "PYODIDE_ROOT" in os.environ: |
| 272 | # we have a pyodide build tree checked out |
| 273 | # use the dist directory from that |
| 274 | dist_dir = Path(os.environ["PYODIDE_ROOT"]) / "dist" |
| 275 | else: |
| 276 | # we don't have a build tree |
| 277 | pyodide_version = "0.29.3" |
| 278 | |
| 279 | pyodide_artifacts_path = Path(session.cache_dir) / f"pyodide-{pyodide_version}" |
| 280 | if not pyodide_artifacts_path.exists(): |
| 281 | print("Fetching pyodide build artifacts") |
| 282 | session.run( |
| 283 | "curl", |
| 284 | "-L", |
| 285 | f"https://github.com/pyodide/pyodide/releases/download/{pyodide_version}/pyodide-{pyodide_version}.tar.bz2", |
| 286 | "--output-dir", |
| 287 | session.cache_dir, |
| 288 | "-O", |
| 289 | external=True, |
| 290 | ) |
| 291 | pyodide_artifacts_path.mkdir(parents=True) |
| 292 | session.run( |
| 293 | "tar", |
| 294 | "-xjf", |
| 295 | f"{pyodide_artifacts_path}.tar.bz2", |
| 296 | "-C", |
| 297 | str(pyodide_artifacts_path), |
| 298 | "--strip-components", |
| 299 | "1", |
| 300 | external=True, |
| 301 | ) |
| 302 | |
| 303 | dist_dir = pyodide_artifacts_path |
| 304 | session.run("uv", "run", "-m", "build") |
| 305 | assert dist_dir is not None |
| 306 | assert dist_dir.exists() |
| 307 | tests_impl( |
| 308 | session, |
| 309 | extras="", |
| 310 | pytest_extra_args=[ |
| 311 | "--runtime", |
| 312 | f"{runner}-no-host", |
| 313 | "--dist-dir", |
| 314 | str(dist_dir), |
| 315 | "test/contrib/emscripten", |
| 316 | "-v", |
| 317 | ], |
| 318 | dependency_group="emscripten", |
nothing calls this directly
no test coverage detected