Open abravalheri opened 3 weeks ago
In #4327 I noticed that some editable tests fail sometimes on macos-14-arm64.
macos-14-arm64
The weird part is that the output seem to indicate that part of the modules are being imported from the right location but other part is not? I don't fully understand yet.
# test_editable_with_pyproject[strict-files1] # tmp_path = PosixPath('/private/var/folders/3m/p59k4qdj0f17st0gn2cmj3640000gn/T/pytest-of- # runner/pytest-0/popen-gw2/test_editable_with_pyproject_s1') # venv = <setuptools.tests.environment.VirtualEnv object at 0x10b472210> # files = {'LICENSE.txt': '---- placeholder MIT license ----', 'MANIFEST.in': 'global-include # *.py *.txt\nglobal-exclude *.py[co...\n[tool.setuptools.dynamic]\nreadme = {file = # "README.rst"}\n\n[tool.distutils.egg_info]\ntag-build = ".post0"\n', ...} # editable_opts = ['--config-settings', 'editable-mode=strict'] def test_editable_with_pyproject(tmp_path, venv, files, editable_opts): project = tmp_path / "mypkg" project.mkdir() jaraco.path.build(files, prefix=project) cmd = [ "python", "-m", "pip", "install", "--no-build-isolation", # required to force current version of setuptools "-e", str(project), *editable_opts, ] print(venv.run(cmd)) cmd = ["python", "-m", "mypkg"] assert venv.run(cmd).strip() == "3.14159.post0 Hello World" (project / "src/mypkg/data.txt").write_text("foobar", encoding="utf-8") (project / "src/mypkg/mod.py").write_text("x = 42", encoding="utf-8") > assert venv.run(cmd).strip() == "3.14159.post0 foobar 42" E AssertionError: assert '3.14159.post0 foobar' == '3.14159.post0 foobar 42' E E - 3.14159.post0 foobar 42 E ? --- E + 3.14159.post0 foobar
setuptools/tests/test_editable_install.py:150
# TestOverallBehaviour.test_editable_install[strict-src-layout] # self = <setuptools.tests.test_editable_install.TestOverallBehaviour object at 0x103d52f00> # tmp_path = PosixPath('/private/var/folders/3m/p59k4qdj0f17st0gn2cmj3640000gn/T/pytest-of- # runner/pytest-0/popen-gw0/test_editable_install_strict_s0') # venv = <setuptools.tests.environment.VirtualEnv object at 0x120076d20> # layout = 'src-layout' # editable_opts = ['--config-settings', 'editable-mode=strict'] @pytest.mark.parametrize("layout", EXAMPLES.keys()) def test_editable_install(self, tmp_path, venv, layout, editable_opts): project, _ = install_project( "mypkg", venv, tmp_path, self.EXAMPLES[layout], *editable_opts ) # Ensure stray files are not importable cmd_import_error = """\ try: import otherfile except ImportError as ex: print(ex) """ out = venv.run(["python", "-c", dedent(cmd_import_error)]) assert "No module named 'otherfile'" in out # Ensure the modules are importable cmd_get_vars = """\ import mypkg, mypkg.mod1, mypkg.subpackage.mod2 print(mypkg.mod1.var, mypkg.subpackage.mod2.var) """ out = venv.run(["python", "-c", dedent(cmd_get_vars)]) assert "42 13" in out # Ensure resources are reachable cmd_get_resource = """\ import mypkg.subpackage from setuptools._importlib import resources as importlib_resources text = importlib_resources.files(mypkg.subpackage) / "resource_file.txt" print(text.read_text(encoding="utf-8")) """ out = venv.run(["python", "-c", dedent(cmd_get_resource)]) assert "resource 39" in out # Ensure files are editable mod1 = next(project.glob("**/mod1.py")) mod2 = next(project.glob("**/mod2.py")) resource_file = next(project.glob("**/resource_file.txt")) mod1.write_text("var = 17", encoding="utf-8") mod2.write_text("var = 781", encoding="utf-8") resource_file.write_text("resource 374", encoding="utf-8") out = venv.run(["python", "-c", dedent(cmd_get_vars)]) assert "42 13" not in out > assert "17 781" in out E AssertionError: assert '17 781' in '42 781\n'
setuptools/tests/test_editable_install.py:945
Strict installation should be using a link farm to the files (which should be compatible with macOS).
In #4327 I noticed that some editable tests fail sometimes on
macos-14-arm64
.The weird part is that the output seem to indicate that part of the modules are being imported from the right location but other part is not? I don't fully understand yet.
setuptools/tests/test_editable_install.py:150
setuptools/tests/test_editable_install.py:945
Strict installation should be using a link farm to the files (which should be compatible with macOS).