Integration tests: mercurial-testhelpers
Georges Racinet
georges.racinet at octobus.net
Mon Nov 23 21:13:45 UTC 2020
Hi,
I've updated recently the Integration Tests Plan [1] with what has been
said during the 5.6 sprint (from the pad) and more ideas and realizations.
## mercurial-testhelpers
Then, I've extracted my helpers as the `mercurial-testhelpers` separate
package [2]. The main driving reason is that even if it went straight to
the core right now, extension authors wouldn't be able to use it until
they drop support for hg 5.6. For some, that would mean at least a few
yearsâ¦
mercurial-testhelpers is usable right now by extensions and other
downstreams. It comes with examples for the core [3], hg-evolve and
hg-git and is of course entirely tested using itself, with CI etc.
It is compatible down to at least hg 4.3 (I didn't try further).
Just to say how committed I am about it, all the Python testing of
Heptapod relies on it. I must add that its introduction was a tipping
point in development.
## core submission coming soon
That extraction already had me remove some specifics â and provide means
for projects that need them to add them back.
As a result, I feel now ready to start submitting code to the core. I've
explained some of the choices in the README [4].
Even if it's quite small, I'm not sure how to cut it in smaller
reviewable chunks, but I wouldn't probably start by hooking it in
`run-tests.py`, that's not what I'm the most at ease with. I'd simply
tell people to install and run pytest manually in the first drafts [5]
if that's ok. Guidance and feedback would be much appreciated!
I've had a chat with Jörg today about the dreadful
`test-http-bad-server.t`, will experiment later this week or the next to
see if I can make something equivalent and more maintainable out of it.
Best,
[1] https://www.mercurial-scm.org/wiki/IntegrationTestsPlan
[2] https://pypi.org/project/mercurial-testhelpers andÂ
https://foss.heptapod.net/mercurial/testhelpers
[3] the core example is the exact same translation of test-revset.t I've
prepared for the sprint (needs to be split into separate concerns and
completed), plus a Python test copied over to check that launching it
with pytest works (it does).
[4]
https://foss.heptapod.net/mercurial/testhelpers/-/blob/branch/default/README.md
[5] of course, that means not removing any existing case until it's run
by the main runner automatically.
--
Georges Racinet
https://octobus.net, https://about.heptapod.host, https://heptapod.net
GPG: BF5456F4DC625443849B6E58EE20CA44EF691D39, sur serveurs publics
More information about the Mercurial-devel
mailing list