mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-20 18:55:29 -05:00
* 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
69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
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"
|