Bug 1312031

Summary: Put all of the test module in the -test subpackage
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python3Assignee: Lumír Balhar <lbalhar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: cstratak, jberan, lbalhar, mhroncok, mstuchli, pviktori, tomspur
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python3-3.7.4-3.fc31 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-15 15:53:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1728780    
Bug Blocks:    

Description Miro Hrončok 2016-02-25 15:02:27 UTC
Should we really have test module installed in python3-libs?

Isn't it self test suite?

Comment 1 Jan Kurik 2016-07-26 04:10:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 25 development cycle.
Changing version to '25'.

Comment 2 Charalampos Stratakis 2017-04-18 18:12:07 UTC
I guess we are talking about /usr/lib64/python3.5/test ?

Also we are shipping with python3-libs the idle tests at /usr/lib64/python3.5/idlelib/idle_test

I think this should be changed as well (assuming it won't break idle somehow).

Comment 3 Charalampos Stratakis 2017-04-19 12:29:15 UTC
Did some digging.


These lines exist at python3-libs package

%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/
%dir %{pylibdir}/test/support/
%dir %{pylibdir}/test/support/__pycache__/
%{pylibdir}/test/__init__.py
%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
%{pylibdir}/test/support/__init__.py
%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}

the test.support module is there due to bug 596258

Commit: http://pkgs.fedoraproject.org/cgit/rpms/python3.git/commit/?id=e1c7be02b9c4543cb0b26d6b9c02ea4d95fc3d4b

Now the rest of the lines have been propagated there from python2 package when the tests subpackage was actually created. Not sure if there is reason for that and/if we should change it.

Relevant commit:
http://pkgs.fedoraproject.org/cgit/rpms/python.git/commit/?id=860ed4856c8af7b8fc75f22f7b1dab5007b1e5a0

Comment 4 Fedora End Of Life 2017-11-16 19:09:26 UTC
This message is a reminder that Fedora 25 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 25. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '25'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 25 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 5 Charalampos Stratakis 2017-11-20 17:02:11 UTC
Still valid.

Comment 6 Petr Viktorin (pviktori) 2018-01-18 14:25:47 UTC
I don't understand what's wrong. Miro, could you clarify what the problem is?

Comment 7 Miro Hrončok 2018-01-18 14:39:38 UTC
Note to self: be more verbose.

I'll revisit the content of test/libs and be more specific or close this.

Comment 8 Miro Hrončok 2018-02-15 14:55:25 UTC
I have no idea. Sorry.

Comment 9 Petr Viktorin (pviktori) 2019-03-27 15:17:02 UTC
OK, I now remember what's wrong.
Re-opening this, as it's relevant for PEP 949.


All of test module, including support, should be in the `python3-test` package.
[The documentation] says test.support is not a public module. Other things should not depend on it, and if something is useful outside the CPython test suite, we should ideally take it out of test.support.

How much breakage would there be if we move test.support to -test?


[The documentation]: https://docs.python.org/3/library/test.html#module-test.support

Comment 10 Miro Hrončok 2019-03-27 15:37:33 UTC
I remember test.support usage in upstream project tests. However if it is not support, it is not supported.

I can imagine a small self-contained change (mostly so we make sure packagers are aware of this and we have a release note point) and move everything to -test.

A workaround for the package maintainer is to BR python3-test. For the user, the workaround is to install it. This could actually help upstream to find out where and how are the bits used.

So yes, let's do this for Fedora 31 - we are breaking things anyway (Sphinx 2, pyetst 4, Python 3.8).

Comment 11 Miro Hrončok 2019-03-27 15:49:34 UTC
> However if it is not support, it is not supported.

I meant to type: If such usage is not supported, it is not supported.

Comment 12 Miro Hrončok 2019-04-02 13:10:02 UTC
For reference:

https://fedoraproject.org/wiki/Releases/31/Schedule

2019-07-23	Change Checkpoint: Proposal submission deadline (Self Contained Changes)

Comment 13 Miro Hrončok 2019-04-12 08:54:15 UTC
Just a note: gevent uses test.support very much:

https://github.com/gevent/gevent/tree/master/src/greentest/3.7

Comment 14 Lumír Balhar 2019-06-24 07:55:07 UTC
The first draft of a self-contained change: https://fedoraproject.org/wiki/Changes/Unification_of_placement_of_Python_test_modules

I am going to find all test modules, place them in the -test subpackage and do some testing.

Is there anybody who would like to work on it with me?

Comment 15 Miro Hrončok 2019-06-24 08:09:33 UTC
Thanks. I can work with you as a reviewer etc.

I suggest to mention test.support in the detailed description (as the most significant example of this).

Comment 16 Lumír Balhar 2019-06-24 09:13:46 UTC
After a quick meeting with Petr, it seems that the change can be rewritten with less general wording because it's applicable only on test.support module. Tkinter has tests in -test subpackage already and if we'd want to move also tests of idle there, it'd be better to do it in upstream.

I'll provide a new proposal in a while.

Comment 17 Petr Viktorin (pviktori) 2019-06-24 09:22:55 UTC
On a higher level, the chat was about what the `python3-test` means: I argued for "the `test` module", rather than "all of CPython's tests".

Split along modules/directories makes the packaging more straightforward and to align with upstream. (For IDLE tests, it might be aligning with an upstream bug -- but that's better solved upstream, if at all).

Comment 18 Lumír Balhar 2019-06-24 09:30:57 UTC
A new version of change proposal: https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python3-test_subpackage

Comment 19 Miro Hrončok 2019-06-24 09:36:32 UTC
I like this new change more, thanks!

However, please add more into "Benefit to Fedora". Namely, Ir recommend digging out and linking some old bugs where parts of the test.support module were in -libs and parts in -test and it made it broken. The main benefit here is that moving it all to -test is less fragile and more consistent.

I also recommend quoting Petr with:

"[The documentation] says test.support is not a public module. Other things should not depend on it, and if something is useful outside the CPython test suite, we should ideally take it out of test.support."

Comment 20 Lumír Balhar 2019-06-24 12:19:33 UTC
(In reply to Miro Hrončok from comment #19)
> I like this new change more, thanks!
> 
> However, please add more into "Benefit to Fedora". Namely, Ir recommend
> digging out and linking some old bugs where parts of the test.support module
> were in -libs and parts in -test and it made it broken. The main benefit
> here is that moving it all to -test is less fragile and more consistent.
> 
> I also recommend quoting Petr with:
> 
> "[The documentation] says test.support is not a public module. Other things
> should not depend on it, and if something is useful outside the CPython test
> suite, we should ideally take it out of test.support."

Updated.

Comment 21 Miro Hrončok 2019-06-24 12:27:17 UTC
LGTM, from my POV, ready to be presented to the wrangler.

Comment 22 Lumír Balhar 2019-06-24 12:52:26 UTC
The state switched to "ChangeReadyForWrangler".

Comment 23 Lumír Balhar 2019-06-28 08:08:58 UTC
Sharing the same info about the impact of the change as I sent recently to the devel@ mailing list:

I am bringing here some numbers which help us to understand that the change won't affect a lot of packages.

I've prepared a special COPR [0] where test.support module is not available at all and then I rebuilt all Python packages. From 2952 packages 2769 built successfully and only 182 failed. Most failures were caused by missing dependencies (python2-), incompatible pytest or sphinx version, etc. and only 7 packages fail to build because of the missing test.support module. From those 7 packages, 4 already require python3-test so there will be need to change only 3 packages after we'll move test.support module from python3-libs to python3-test.

[0] https://copr.fedorainfracloud.org/coprs/lbalhar/test.support_change/