2022-03-16 17:55:07 +00:00
|
|
|
from pyodide_build.common import ( # type: ignore[import]
|
2022-03-12 06:05:36 +00:00
|
|
|
ALWAYS_PACKAGES,
|
|
|
|
CORE_PACKAGES,
|
|
|
|
CORE_SCIPY_PACKAGES,
|
|
|
|
UNVENDORED_STDLIB_MODULES,
|
2021-03-26 14:37:59 +00:00
|
|
|
_parse_package_subset,
|
2022-03-16 17:55:07 +00:00
|
|
|
find_matching_wheels,
|
2021-03-26 14:37:59 +00:00
|
|
|
get_make_environment_vars,
|
2022-02-21 22:27:03 +00:00
|
|
|
get_make_flag,
|
|
|
|
)
|
2020-05-08 23:28:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_parse_package_subset():
|
2022-03-12 06:05:36 +00:00
|
|
|
assert (
|
|
|
|
_parse_package_subset("numpy,pandas")
|
|
|
|
== {
|
|
|
|
"numpy",
|
|
|
|
"pandas",
|
|
|
|
}
|
|
|
|
| UNVENDORED_STDLIB_MODULES
|
|
|
|
| ALWAYS_PACKAGES
|
|
|
|
)
|
2020-05-12 10:33:20 +00:00
|
|
|
|
|
|
|
# duplicates are removed
|
2022-03-12 06:05:36 +00:00
|
|
|
assert (
|
|
|
|
_parse_package_subset("numpy,numpy")
|
|
|
|
== {
|
|
|
|
"numpy",
|
|
|
|
}
|
|
|
|
| UNVENDORED_STDLIB_MODULES
|
|
|
|
| ALWAYS_PACKAGES
|
|
|
|
)
|
2021-03-20 18:00:35 +00:00
|
|
|
|
|
|
|
# no empty package name included, spaces are handled
|
2022-03-12 06:05:36 +00:00
|
|
|
assert (
|
|
|
|
_parse_package_subset("x, a, b, c ,,, d,,")
|
|
|
|
== {
|
|
|
|
"x",
|
|
|
|
"a",
|
|
|
|
"b",
|
|
|
|
"c",
|
|
|
|
"d",
|
|
|
|
}
|
|
|
|
| UNVENDORED_STDLIB_MODULES
|
|
|
|
| ALWAYS_PACKAGES
|
|
|
|
)
|
2021-09-02 20:19:23 +00:00
|
|
|
|
2022-03-12 06:05:36 +00:00
|
|
|
assert (
|
|
|
|
_parse_package_subset("core")
|
|
|
|
== CORE_PACKAGES | UNVENDORED_STDLIB_MODULES | ALWAYS_PACKAGES
|
|
|
|
)
|
2021-09-02 20:19:23 +00:00
|
|
|
# by default core packages are built
|
|
|
|
assert _parse_package_subset(None) == _parse_package_subset("core")
|
|
|
|
|
2022-03-12 06:05:36 +00:00
|
|
|
assert (
|
|
|
|
_parse_package_subset("min-scipy-stack")
|
|
|
|
== CORE_SCIPY_PACKAGES
|
|
|
|
| CORE_PACKAGES
|
|
|
|
| UNVENDORED_STDLIB_MODULES
|
|
|
|
| ALWAYS_PACKAGES
|
|
|
|
)
|
2021-09-02 20:19:23 +00:00
|
|
|
# reserved key words can be combined with other packages
|
|
|
|
assert _parse_package_subset("core, unknown") == _parse_package_subset("core") | {
|
|
|
|
"unknown"
|
|
|
|
}
|
2021-03-26 14:37:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_make_flag():
|
|
|
|
assert len(get_make_flag("SIDE_MODULE_LDFLAGS")) > 0
|
|
|
|
assert len(get_make_flag("SIDE_MODULE_CFLAGS")) > 0
|
|
|
|
# n.b. right now CXXFLAGS is empty so don't check length here, just check it returns
|
|
|
|
get_make_flag("SIDE_MODULE_CXXFLAGS")
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_make_environment_vars():
|
|
|
|
vars = get_make_environment_vars()
|
|
|
|
assert "SIDE_MODULE_LDFLAGS" in vars
|
|
|
|
assert "SIDE_MODULE_CFLAGS" in vars
|
|
|
|
assert "SIDE_MODULE_CXXFLAGS" in vars
|
|
|
|
assert "TOOLSDIR" in vars
|
2022-03-16 17:55:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_wheel_paths():
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
old_version = "cp38"
|
|
|
|
current_version = "cp39"
|
|
|
|
future_version = "cp317"
|
|
|
|
strings = []
|
|
|
|
|
|
|
|
for interp in [
|
|
|
|
old_version,
|
|
|
|
current_version,
|
|
|
|
future_version,
|
|
|
|
"py3",
|
|
|
|
"py2",
|
|
|
|
"py2.py3",
|
|
|
|
]:
|
|
|
|
for abi in [interp, "abi3", "none"]:
|
|
|
|
for arch in ["emscripten_wasm32", "linux_x86_64", "any"]:
|
|
|
|
strings.append(f"wrapt-1.13.3-{interp}-{abi}-{arch}.whl")
|
|
|
|
|
|
|
|
paths = [Path(x) for x in strings]
|
|
|
|
assert [x.stem.split("-", 2)[-1] for x in find_matching_wheels(paths)] == [
|
|
|
|
"cp39-cp39-emscripten_wasm32",
|
|
|
|
"cp39-abi3-emscripten_wasm32",
|
|
|
|
"cp39-none-emscripten_wasm32",
|
|
|
|
"cp38-abi3-emscripten_wasm32",
|
|
|
|
"py3-none-emscripten_wasm32",
|
|
|
|
"py2.py3-none-emscripten_wasm32",
|
|
|
|
"py3-none-any",
|
|
|
|
"py2.py3-none-any",
|
|
|
|
]
|