Message ID | 20200309081827.13489-4-tanguy@bioneland.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#39777,V3,01/11] gnu: python-pexpect: Update to 4.8.0. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
On Mon, Mar 09, 2020 at 09:18:20AM +0100, Tanguy Le Carrour wrote: > * gnu/packages/python-xyz.scm (python-jsonschema): Update to 3.2.0. > [propagated-inputs]: Add python-importlib-metadata. > [arguments]: Disable failing test. > + (add-before 'check 'disable-failing-test > + (lambda _ > + (substitute* "jsonschema/tests/test_cli.py" > + (("def test_version") "def _test_version")) > + #t)) Again, we need a comment explaining what's wrong with the test.
Hi Leo, Thanks for taking the time to read my patches! Le 03/11, Leo Famulari a écrit : > On Mon, Mar 09, 2020 at 09:18:20AM +0100, Tanguy Le Carrour wrote: > > * gnu/packages/python-xyz.scm (python-jsonschema): Update to 3.2.0. > > [propagated-inputs]: Add python-importlib-metadata. > > [arguments]: Disable failing test. > > > + (add-before 'check 'disable-failing-test > > + (lambda _ > > + (substitute* "jsonschema/tests/test_cli.py" > > + (("def test_version") "def _test_version")) > > + #t)) > > Again, we need a comment explaining what's wrong with the test. My bad! Sorry! I started investigating when I submitted the patch, but… well… I haven't found a fix yet and I'm not sure who to blame! The test relies on a call to `subprocess.check_output` to run `python -m jsonschema --version`, but it behaves like `--version` was never passed to the command?! ``` 145 def test_version(self): 146 version = subprocess.check_output( 147 [sys.executable, "-m", "jsonschema", "--version"], 148 stderr=subprocess.STDOUT, 149 ) ``` Replacing `check_output` with `check_call` shows the actual error message: ``` usage: __main__.py [-h] [-i INSTANCES] [-F ERROR_FORMAT] [-V VALIDATOR] schema __main__.py: error: the following arguments are required: schema ``` Doesn't really look like a problem with jsonschema to me, and… I would not dare blaming python. ^_^' Any idea welcome!
On Thu, Mar 12, 2020 at 09:48:28AM +0100, Tanguy Le Carrour wrote: > The test relies on a call to `subprocess.check_output` to run > `python -m jsonschema --version`, but it behaves like `--version` was > never passed to the command?! How do you know it behaves like that? Is there some error output?
Le 03/12, Leo Famulari a écrit : > On Thu, Mar 12, 2020 at 09:48:28AM +0100, Tanguy Le Carrour wrote: > > The test relies on a call to `subprocess.check_output` to run > > `python -m jsonschema --version`, but it behaves like `--version` was > > never passed to the command?! > > How do you know it behaves like that? Is there some error output? Actually, you're right, I don't know, because I didn't reproduce the exact same error! ``` $ ./pre-inst-env guix build python-jsonschema -K […] subprocess.CalledProcessError: Command '['/gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python', '-m', 'jsonschema', '--version']' returned non-zero exit status 1. ``` The exit status is 1. To reproduce it in the build directory I did the following: ``` $ cd /tmp/guix-build-python-jsonschema-3.2.0.drv-0/jsonschema-3.2.0/ $ guix environment python-jsonschema --ad-hoc python-importlib-metadata $ set -x PYTHONPATH .:$PYTHONPATH # I'm using Fish $ trial jsonschema/tests/test_cli.py [env] GUIX jsonschema.tests.test_cli TestCLI test_draft3_schema_draft4_validator ... [OK] test_successful_validation ... [OK] test_unsuccessful_validation ... [OK] test_unsuccessful_validation_multiple_instances ... [OK] test_version ... [ERROR] =============================================================================== [ERROR] Traceback (most recent call last): […] subprocess.CalledProcessError: Command '['/gnu/store/m4kgg8z52kn6xspmd3brvivd129d4i3s-python-wrapper-3.7.4/bin/python', '-m', 'jsonschema', '--version']' returned non-zero exit status 2. ``` But the exit status was… 2! Which I didn't pay attention at first. Then, I modified the code of the test to add some log: ``` $ trial jsonschema/tests/test_cli.py [env] GUIX jsonschema.tests.test_cli TestCLI test_draft3_schema_draft4_validator ... [OK] test_successful_validation ... [OK] test_unsuccessful_validation ... [OK] test_unsuccessful_validation_multiple_instances ... [OK] test_version ... usage: __main__.py [-h] [-i INSTANCES] [-F ERROR_FORMAT] [-V VALIDATOR] schema __main__.py: error: the following arguments are required: schema [ERROR] ``` This error message in the output is the one I would get by calling `python -m jsonschema` without `--version`. This was the end of my investigation and… a mistake! ^_^' Right after your question, I tried to do the same but directly from my package definition by adding a `substitute`: ``` (add-before 'check 'replace-check-output (lambda _ (substitute* "jsonschema/tests/test_cli.py" (("check_output") "check_call")) #t)) ``` Re-built the package and… got the exit status 1 with a different error message in the log: ``` jsonschema.tests.test_cli TestCLI test_draft3_schema_draft4_validator ... [OK] test_successful_validation ... [OK] test_unsuccessful_validation ... [OK] test_unsuccessful_validation_multiple_instances ... [OK] test_version ... /gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python: No module named jsonschema [ERROR] =============================================================================== [ERROR] Traceback (most recent call last): […] subprocess.CalledProcessError: Command '['/gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python', '-m', 'jsonschema', '--version']' returned non-zero exit status 1. ``` So, I'm left with the same question: - why does it fail with `No module named jsonschema`? and with a second one - why wasn't I able to reproduce the error from the build directory?! I still have a lot to learn! :-( Any help welcome!
On Fri, Mar 13, 2020 at 09:45:41AM +0100, Tanguy Le Carrour wrote: > So, I'm left with the same question: > - why does it fail with `No module named jsonschema`? and with a second one I'm not sure, I'm not that strong with Python. > - why wasn't I able to reproduce the error from the build directory?! There are lots of things that could have changed. First, I would use `guix environment --pure` to try isolating the rest of the system, beginning to approximate the build chroot. You could even try `guix environment --container` if your system supports it. Second, the tests might be idempotent. You'll have a hard time reproducing the build environment exactly but it's usually possible to figure out why the test is failing.
On Fri, Mar 13, 2020 at 09:45:41AM +0100, Tanguy Le Carrour wrote: > Re-built the package and… got the exit status 1 with a different error message > in the log: > > ``` > jsonschema.tests.test_cli > TestCLI > test_draft3_schema_draft4_validator ... [OK] > test_successful_validation ... [OK] > test_unsuccessful_validation ... [OK] > test_unsuccessful_validation_multiple_instances ... [OK] > test_version ... /gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python: No module named jsonschema > [ERROR] > =============================================================================== My understanding is that the test suite of jsonschema can't find jsonschema. Is that correct? If so, you should look into the add-installed-pythonpath procedure and some examples of how it's used.
Le 03/14, Leo Famulari a écrit : > On Fri, Mar 13, 2020 at 09:45:41AM +0100, Tanguy Le Carrour wrote: > > Re-built the package and… got the exit status 1 with a different error message > > in the log: > > > > ``` > > jsonschema.tests.test_cli > > TestCLI > > test_draft3_schema_draft4_validator ... [OK] > > test_successful_validation ... [OK] > > test_unsuccessful_validation ... [OK] > > test_unsuccessful_validation_multiple_instances ... [OK] > > test_version ... /gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python: No module named jsonschema > > [ERROR] > > =============================================================================== > > My understanding is that the test suite of jsonschema can't find > jsonschema. Is that correct? If so, you should look into the > add-installed-pythonpath procedure and some examples of how it's used. I'll do that! Thanks!
Hi Leo, Le 03/14, Tanguy Le Carrour a écrit : > Le 03/14, Leo Famulari a écrit : > > On Fri, Mar 13, 2020 at 09:45:41AM +0100, Tanguy Le Carrour wrote: > > > Re-built the package and… got the exit status 1 with a different error message > > > in the log: > > > > > > ``` > > > jsonschema.tests.test_cli > > > TestCLI > > > test_draft3_schema_draft4_validator ... [OK] > > > test_successful_validation ... [OK] > > > test_unsuccessful_validation ... [OK] > > > test_unsuccessful_validation_multiple_instances ... [OK] > > > test_version ... /gnu/store/l8nphg0idd8pfddyad8f92lx8d1hc053-python-wrapper-3.7.4/bin/python: No module named jsonschema > > > [ERROR] > > > =============================================================================== > > > > My understanding is that the test suite of jsonschema can't find > > jsonschema. Is that correct? If so, you should look into the > > add-installed-pythonpath procedure and some examples of how it's used. > > I'll do that! Thanks! It solved the problem! Thanks! I'm moving to fixing the cachy/redis problem now, and I'll submit a v4 patch set once it's done! Regards
On Thu, Mar 19, 2020 at 08:42:16AM +0100, Tanguy Le Carrour wrote: > It solved the problem! Thanks! I'm moving to fixing the cachy/redis problem > now, and I'll submit a v4 patch set once it's done! I'm glad to hear it, thanks!
Le 03/20, Leo Famulari a écrit : > On Thu, Mar 19, 2020 at 08:42:16AM +0100, Tanguy Le Carrour wrote: > > It solved the problem! Thanks! I'm moving to fixing the cachy/redis problem > > now, and I'll submit a v4 patch set once it's done! > > I'm glad to hear it, thanks! Thanks to you for (kindly) pushing the contributors to keep the package quality as high as possible! :-)
On Sat, Mar 21, 2020 at 09:50:25AM +0100, Tanguy Le Carrour wrote: > Thanks to you for (kindly) pushing the contributors to keep the package quality > as high as possible! :-) It's important to find the right balance. I don't want to push contributors away. Please tell us if you think we are being unreasonable!
Hi Leo, Le 03/22, Leo Famulari a écrit : > On Sat, Mar 21, 2020 at 09:50:25AM +0100, Tanguy Le Carrour wrote: > > Thanks to you for (kindly) pushing the contributors to keep the package quality > > as high as possible! :-) > > It's important to find the right balance. I don't want to push > contributors away. Please tell us if you think we are being > unreasonable! I really appriciate that you guys take the time to read and discuss contributr's code. And you won't scare me away from the project by being picky, honest and polite! ;-) Best regards
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 82892802ff..d577487b25 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2037,17 +2037,22 @@ compare, diff, and patch JSON and JSON-like structures in Python.") (define-public python-jsonschema (package (name "python-jsonschema") - (version "3.0.1") + (version "3.2.0") (source (origin (method url-fetch) (uri (pypi-uri "jsonschema" version)) (sha256 (base32 - "03g20i1xfg4qdlk4475pl4pp7y0h37g1fbgs5qhy678q9xb822hc")))) + "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-failing-test + (lambda _ + (substitute* "jsonschema/tests/test_cli.py" + (("def test_version") "def _test_version")) + #t)) (replace 'check (lambda _ (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) @@ -2057,6 +2062,7 @@ compare, diff, and patch JSON and JSON-like structures in Python.") ("python-twisted" ,python-twisted))) (propagated-inputs `(("python-attrs" ,python-attrs) + ("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8 ("python-pyrsistent" ,python-pyrsistent) ("python-six" ,python-six))) (home-page "https://github.com/Julian/jsonschema")