[pytest-dev] introducing collection boundaries to support expanding fixtures to non-python and testsuites as python packages
Ronny Pfannschmidt
opensource at ronnypfannschmidt.de
Sun Oct 2 12:49:45 EDT 2022
Hi everyone,
i would like to break open a number of limitations we have in the
collection system.
1. parametrize is tied painfully into Python Items
I want to finish my experiment for function definitions and generalize them
This would mean that instead of multiple python collectors invoking
parametrize internally to functions,
we would collect function definitions.
This would be represented in the collection tree instead of just being a
implementation detail of the python generate_tests hook
the generate_tests hook would generalize so that it would apply to any
"definition" not just a Python Function Definition.
(im torn between keeping item or intoducing a Parameterization Node,
aining insights on that will have to wait until definition is part of
the collection tree)
2. pytests unawareness of tests in packages that may/must install vs
tests in local test folders create painful breakages with doctests/tests
inside of packages that must install/reinstall for testruns
i'd like to enable a basic awareness of installed tests vs local tests
vs editable tests (and fail pytest if installed tests differ from the
local files)
this also includes better awareness of paths/meta paths and pep420
3. testsuites for reuse or purposes like system testing cannot natively
be shipped as python packages,
collecting them creates painful effects wrt local vs remote filenames as
well as collection paths vs import paths
it should be possible to have testsuites that ship as pytohn packages
and to parametrize/configure them.
for that i would like to propose a system building on top of the
packaging awareness of pytest, and extending it with mechanisms to
either call defined testsuites and/or referring to external testuites
and including configured versions of those in current testruns
exact mechanisms for configuration/nesting/"testsuite cycles" and more
are yet to be determined
but examples i'd like to support are stuff like having tools and
frameworks provide basic tests for stuff like "base behaviors of well
behaved plugins of a framework", "sanity tests for features of of
framework plugins"
i'd love to get inputs/considerations and concerns as i'll focus on
those topics in order in the next few months.
-- Ronny
More information about the pytest-dev
mailing list