From 2f7f71ea58687ca173ef6b972027e22e09542437 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Wed, 20 Mar 2024 06:21:09 -0700 Subject: [PATCH] doc: Add troubleshooting for Cythonized code and pytest (#293069) Cython is a Python compiler that emits native .so modules. By default, python derivations run tests in the wrong directory to see these modules and tests fail. Issue #255262 documents the root cause and solution for this problem. This PR adds a description of the problem and the most common solution to the test troubleshooting list. --- doc/languages-frameworks/python.section.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index fa7f3eddf72c..4ca177bcdd26 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -2014,6 +2014,10 @@ example of such a situation is when `py.test` is used. * Tests that attempt to access `$HOME` can be fixed by using the following work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` +* Compiling with Cython causes tests to fail with a `ModuleNotLoadedError`. + This can be fixed with two changes in the derivation: 1) replacing `pytest` with + `pytestCheckHook` and 2) adding a `preCheck` containing `cd $out` to run + tests within the built output. ## Contributing {#contributing}