mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-21 03:05:38 -05:00
add tests for runtime config inside py-config and remove usage of indexURL (#734)
* add integration test for py-config * fix bug * fix test * remove indexURL altogether * make jest happy * fix create_proxy import * check that py-config loads an older version * add unit test * suggested changes * don't use /tmp because of bandit
This commit is contained in:
68
pyscriptjs/tests/integration/test_py_runtime_config.py
Normal file
68
pyscriptjs/tests/integration/test_py_runtime_config.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import os
|
||||
import tarfile
|
||||
import tempfile
|
||||
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
from .support import PyScriptTest
|
||||
|
||||
URL = "https://github.com/pyodide/pyodide/releases/download/0.20.0/pyodide-build-0.20.0.tar.bz2"
|
||||
TAR_NAME = "pyodide-build-0.20.0.tar.bz2"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def tar_location(request):
|
||||
val = request.config.cache.get("pyodide-0.20-tar", None)
|
||||
if val is None:
|
||||
response = requests.get(URL, stream=True)
|
||||
TMP_DIR = tempfile.mkdtemp()
|
||||
TMP_TAR_LOCATION = os.path.join(TMP_DIR, TAR_NAME)
|
||||
with open(TMP_TAR_LOCATION, "wb") as f:
|
||||
f.write(response.raw.read())
|
||||
val = TMP_TAR_LOCATION
|
||||
request.config.cache.set("pyodide-0.20-tar", val)
|
||||
return val
|
||||
|
||||
|
||||
def unzip(location, extract_to="."):
|
||||
file = tarfile.open(name=location, mode="r:bz2")
|
||||
file.extractall(path=extract_to)
|
||||
|
||||
|
||||
class TestRuntimeConfig(PyScriptTest):
|
||||
# The default pyodide version is 0.21.2 as of writing
|
||||
# this test which is newer than the one we are loading below
|
||||
# (after downloading locally) -- which is 0.20.0
|
||||
|
||||
# The test checks if loading a different runtime is possible
|
||||
# and that too from a locally downloaded file without needing
|
||||
# the use of explicit `indexURL` calculation.
|
||||
def test_runtime_config(self, tar_location):
|
||||
unzip(
|
||||
location=tar_location,
|
||||
extract_to=self.tmpdir,
|
||||
)
|
||||
|
||||
self.pyscript_run(
|
||||
snippet="""
|
||||
<py-script>
|
||||
import sys, js
|
||||
pyodide_version = sys.modules["pyodide"].__version__
|
||||
js.console.info("version", pyodide_version)
|
||||
pyodide_version
|
||||
</py-script>
|
||||
""",
|
||||
extra_head="""
|
||||
<py-config>
|
||||
runtimes:
|
||||
- src: "/pyodide/pyodide.js"
|
||||
name: pyodide-0.20.0
|
||||
lang: python
|
||||
</py-config>
|
||||
""",
|
||||
)
|
||||
|
||||
assert self.console.info.lines == ["version 0.20.0"]
|
||||
version = self.page.locator("py-script").inner_text()
|
||||
assert version == "0.20.0"
|
||||
Reference in New Issue
Block a user