pyodide/pyodide-build/pyodide_build/tests/test_common.py

83 lines
2.0 KiB
Python

from pyodide_build.common import (
_parse_package_subset,
get_make_flag,
get_make_environment_vars,
) # noqa
def test_parse_package_subset():
# micropip is always included
assert _parse_package_subset("numpy,pandas") == {
"pyparsing",
"packaging",
"micropip",
"numpy",
"pandas",
}
# duplicates are removed
assert _parse_package_subset("numpy,numpy") == {
"pyparsing",
"packaging",
"micropip",
"numpy",
}
# no empty package name included, spaces are handled
assert _parse_package_subset("x, a, b, c ,,, d,,") == {
"pyparsing",
"packaging",
"micropip",
"x",
"a",
"b",
"c",
"d",
}
assert _parse_package_subset("core") == {
"pyparsing",
"packaging",
"pytz",
"Jinja2",
"micropip",
"regex",
}
# by default core packages are built
assert _parse_package_subset(None) == _parse_package_subset("core")
assert _parse_package_subset("min-scipy-stack") == {
"pyparsing",
"packaging",
"pytz",
"Jinja2",
"micropip",
"regex",
"numpy",
"scipy",
"pandas",
"matplotlib",
"scikit-learn",
"joblib",
"pytest",
}
# reserved key words can be combined with other packages
assert _parse_package_subset("core, unknown") == _parse_package_subset("core") | {
"unknown"
}
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