From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: lib/portage/tests/emerge/
Date: Mon, 30 Oct 2023 03:14:29 +0000 (UTC) [thread overview]
Message-ID: <1698635665.10e6a558c4404d6a0fa8c92634747a1105db6997.sam@gentoo> (raw)
commit: 10e6a558c4404d6a0fa8c92634747a1105db6997
Author: David Palao <david.palao <AT> gmail <DOT> com>
AuthorDate: Fri Oct 13 15:16:41 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Oct 30 03:14:25 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=10e6a558
tests/emerge: test_simple.py, conftest.py: Refactor
Refactor. Removed comments and changed simple -> baseline.
Signed-off-by: David Palao <david.palao <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
lib/portage/tests/emerge/conftest.py | 178 +--------------------
.../emerge/{test_simple.py => test_baseline.py} | 15 +-
2 files changed, 11 insertions(+), 182 deletions(-)
diff --git a/lib/portage/tests/emerge/conftest.py b/lib/portage/tests/emerge/conftest.py
index 693ae0e6a6..aaa603f731 100644
--- a/lib/portage/tests/emerge/conftest.py
+++ b/lib/portage/tests/emerge/conftest.py
@@ -182,8 +182,6 @@ _INSTALLED_EBUILDS = {
_BASELINE_COMMAND_SEQUENCE = [
"emerge -1 dev-libs/A -v dev-libs/B",
"emerge with quickpkg direct",
- # "emerge --root --quickpkg-direct-root",
- # "emerge --quickpkg-direct-root",
"env-update",
"portageq envvar",
"etc-update",
@@ -193,85 +191,8 @@ _BASELINE_COMMAND_SEQUENCE = [
"emerge --info --verbose",
"emerge --list-sets",
"emerge --check-news",
- #
- # # "rm -rf {cachedir}",
- # # "rm -rf {cachedir_pregen}",
- # "emerge --regen",
- # # "rm -rf {cachedir}",
- # "FEATURES=metadata-transfer emerge --regen",
- # # "rm -rf {cachedir}",
- # "FEATURES=metadata-transfer emerge --regen", # is this second test case needed?
- # # "rm -rf {cachedir}",
- # "egencache --update",
- # "FEATURES=metadata-transfer emerge --metadata",
- # # "rm -rf {cachedir}",
- # "FEATURES=metadata-transfer emerge --metadata (2)",
- # "emerge --metadata",
- # # "rm -rf {cachedir}",
- # "emerge --oneshot virtual/foo",
- # # "foo pkg missing",
- # "FEATURES=unmerge-backup emerge --unmerge virtual/foo",
- # # "foo pkg exists",
- # "emerge --pretend dev-libs/A",
- # Sequence:
"emerge --regen/--metadata",
- #
- # "ebuild dev-libs/A-1 manifest clean package merge",
- # "emerge --pretend --tree --complete-graph dev-libs/A",
- # "emerge -p dev-libs/B",
- # "emerge -p --newrepo dev-libs/B",
- # "emerge -B dev-libs/B",
- # "emerge -1k dev-libs/B",
- # "ebuild dev-libs/A-1 unpack",
- # "emerge -1 dev-libs/A",
- # "emerge -n dev-libs/A",
- # "emerge --config dev-libs/A",
- # "emerge --info dev-libs/A dev-libs/B",
- # "emerge -pcv dev-libs/B",
- # "emerge -pc",
- # "emerge -c",
- # "quickpkg --include-config y dev-libs/A",
- # # "no protected files",
- # # "rm /etc/A-0",
- # "emerge -K dev-libs/A",
- # # "one protected file",
- # "emaint --check all",
- # "emaint --fix all",
- # "fixpackages",
- # "regenworld",
- # "portageq match {eroot} dev-libs/A",
- # "portageq best_visible {eroot} dev-libs/A",
- # "portageq best_visible {eroot} binary dev-libs/A",
- # "portageq contents {eroot} dev-libs/A-1",
- # "portageq metadata {eroot} ebuild dev-libs/A-1 EAPI IUSE RDEPEND",
- # "portageq metadata {eroot} binary dev-libs/A-1 EAPI USE RDEPEND",
- # "portageq metadata {eroot} installed dev-libs/A-1 EAPI USE RDEPEND",
- # "portageq owners {eroot} {eroot}usr",
- # "emerge -p {eroot}usr",
- # "emerge -pCq {eroot}usr",
- # "emerge -Cq dev-libs/A",
- # "emerge -Cq dev-libs/B",
"misc package operations",
- # (
- # "EMERGE_DEFAULT_OPTS=--autounmask=n "
- # "emerge --autounmask --autounmask-continue dev-libs/C"
- # ),
- # "portageq match {eroot} dev-libs/D[flag]",
- # "EPREFIX={cross_prefix} emerge dev-libs/C",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/C",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/D",
- # "ROOT={cross_root} emerge dev-libs/D",
- # "portageq has_version {cross_eroot} dev-libs/D",
- # "EPREFIX={cross_prefix} emerge -K dev-libs/A",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/A",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/B",
- # "EPREFIX={cross_prefix} emerge -Cq dev-libs/B",
- # "EPREFIX={cross_prefix} emerge -Cq dev-libs/A",
- # "EPREFIX={cross_prefix} emerge dev-libs/A",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/A",
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/B",
- # "ROOT={cross_root} emerge dev-libs/B",
- # "portageq has_version {cross_eroot} dev-libs/B",
"binhost emerge",
]
@@ -572,7 +493,6 @@ def _generate_all_baseline_commands(playground, binhost):
test_commands = {}
- ###
if hasattr(argparse.ArgumentParser, "parse_intermixed_args"):
parse_intermixed_command = Emerge(
"--oneshot",
@@ -583,10 +503,8 @@ def _generate_all_baseline_commands(playground, binhost):
else:
parse_intermixed_command = Noop()
test_commands["emerge -1 dev-libs/A -v dev-libs/B"] = parse_intermixed_command
- ###
quickpkg_direct_seq = [
- # test_commands["emerge --root --quickpkg-direct-root"] =
Emerge(
"--usepkgonly",
"--root",
@@ -597,7 +515,6 @@ def _generate_all_baseline_commands(playground, binhost):
"dev-libs/A",
),
# v needs ^
- # test_commands["emerge --quickpkg-direct-root"] =
Emerge(
"--usepkgonly",
"--quickpkg-direct=y",
@@ -610,9 +527,7 @@ def _generate_all_baseline_commands(playground, binhost):
*quickpkg_direct_seq
)
- ###
test_commands["env-update"] = EnvUpdate()
- ###
test_commands["portageq envvar"] = Portageq(
"envvar",
"-v",
@@ -622,22 +537,14 @@ def _generate_all_baseline_commands(playground, binhost):
"PORTAGE_TMPDIR",
"USERLAND",
)
- ###
test_commands["etc-update"] = EtcUpdate()
- ###
test_commands["dispatch-conf"] = DispatchConf()
- ###
test_commands["emerge --version"] = Emerge("--version")
- ###
test_commands["emerge --info"] = Emerge("--info")
- ###
test_commands["emerge --info --verbose"] = Emerge("--info", "--verbose")
- ###
test_commands["emerge --list-sets"] = Emerge("--list-sets")
- ###
test_commands["emerge --check-news"] = Emerge("--check-news")
- ###
def _rm_cachedir():
shutil.rmtree(cachedir)
@@ -683,7 +590,6 @@ def _generate_all_baseline_commands(playground, binhost):
]
test_commands["emerge --regen/--metadata"] = PortageCommandSequence(*regen_seq)
- # test_commands["ebuild dev-libs/A-1 manifest clean package merge"] =
abcd_seq = [
Ebuild(
test_ebuild,
@@ -692,64 +598,50 @@ def _generate_all_baseline_commands(playground, binhost):
"package",
"merge",
),
- # test_commands["emerge --pretend --tree --complete-graph dev-libs/A"] =
Emerge(
"--pretend",
"--tree",
"--complete-graph",
"dev-libs/A",
),
- # test_commands["emerge -p dev-libs/B"] =
Emerge("-p", "dev-libs/B"),
- # test_commands["emerge -p --newrepo dev-libs/B"] =
Emerge(
"-p",
"--newrepo",
"dev-libs/B",
),
- # test_commands["emerge -B dev-libs/B"] =
Emerge("-B", "dev-libs/B"),
- # test_commands["emerge -1k dev-libs/B"] =
Emerge(
"--oneshot",
"--usepkg",
"dev-libs/B",
),
# trigger clean prior to pkg_pretend as in bug #390711
- # test_commands["ebuild dev-libs/A-1 unpack"] =
Ebuild(test_ebuild, "unpack"),
- # test_commands["emerge -1 dev-libs/A"] =
Emerge("--oneshot", "dev-libs/A"),
- # test_commands["emerge -n dev-libs/A"] =
Emerge("--noreplace", "dev-libs/A"),
- # test_commands["emerge --config dev-libs/A"] =
Emerge(
"--config",
"dev-libs/A",
),
- # test_commands["emerge --info dev-libs/A dev-libs/B"] =
Emerge(
"--info",
"dev-libs/A",
"dev-libs/B",
),
- # test_commands["emerge -pcv dev-libs/B"] =
Emerge(
"--pretend",
"--depclean",
"--verbose",
"dev-libs/B",
),
- # test_commands["emerge -pc"] =
Emerge("--pretend", "--depclean"),
- # test_commands["emerge -c"] =
Emerge(
"--depclean",
),
# Test bug #523684, where a file renamed or removed by the
# admin forces replacement files to be merged with config
# protection.
- # test_commands["quickpkg --include-config y dev-libs/A"] =
Quickpkg(
"--include-config",
"y",
@@ -758,14 +650,7 @@ def _generate_all_baseline_commands(playground, binhost):
0, eroot, settings["CONFIG_PROTECT"]
),
),
- # Another "it is not a test command" case; actually setup:
- # test_commands["rm /etc/A-0"] = lambda: os.unlink(
- # os.path.join(eprefix, "etc", "A-0")
- # )
- # emerge_noreplace_A =
Emerge("--noreplace", "dev-libs/A"),
- # test_commands["emerge -K dev-libs/A"] = PortageCommandSequence(
- # emerge_noreplace_A,
Emerge(
"--usepkgonly",
"dev-libs/A",
@@ -774,42 +659,31 @@ def _generate_all_baseline_commands(playground, binhost):
1, eroot, settings["CONFIG_PROTECT"]
),
),
- # test_commands["emaint --check all"] =
Emaint("--check", "all"),
- # test_commands["emaint --fix all"] =
Emaint("--fix", "all"),
- # test_commands["fixpackages"] =
Fixpackages(),
- # test_commands["regenworld"] =
Regenworld(),
- # test_commands["portageq match {eroot} dev-libs/A"] =
Portageq(
"match",
eroot,
"dev-libs/A",
),
- # test_commands["portageq best_visible {eroot} dev-libs/A"] =
Portageq(
"best_visible",
eroot,
"dev-libs/A",
),
- # test_commands["portageq best_visible {eroot} binary dev-libs/A"] =
Portageq(
"best_visible",
eroot,
"binary",
"dev-libs/A",
),
- # test_commands["portageq contents {eroot} dev-libs/A-1"] =
Portageq(
"contents",
eroot,
"dev-libs/A-1",
),
- # test_commands[
- # "portageq metadata {eroot} ebuild dev-libs/A-1 EAPI IUSE RDEPEND"
- # ] =
Portageq(
"metadata",
eroot,
@@ -819,9 +693,6 @@ def _generate_all_baseline_commands(playground, binhost):
"IUSE",
"RDEPEND",
),
- # test_commands[
- # "portageq metadata {eroot} binary dev-libs/A-1 EAPI USE RDEPEND"
- # ] =
Portageq(
"metadata",
eroot,
@@ -831,9 +702,6 @@ def _generate_all_baseline_commands(playground, binhost):
"USE",
"RDEPEND",
),
- # test_commands[
- # "portageq metadata {eroot} installed dev-libs/A-1 EAPI USE RDEPEND"
- # ] =
Portageq(
"metadata",
eroot,
@@ -843,28 +711,23 @@ def _generate_all_baseline_commands(playground, binhost):
"USE",
"RDEPEND",
),
- # test_commands["portageq owners {eroot} {eroot}usr"] =
Portageq(
"owners",
eroot,
eroot + "usr",
),
- # test_commands["emerge -p {eroot}usr"] =
Emerge("-p", eroot + "usr"),
- # test_commands["emerge -pCq {eroot}usr"] =
Emerge(
"-p",
"--unmerge",
"-q",
eroot + "usr",
),
- # test_commands["emerge -Cq dev-libs/A"] =
Emerge(
"--unmerge",
"--quiet",
"dev-libs/A",
),
- # test_commands["emerge -Cq dev-libs/B"] =
Emerge(
"-C",
"--quiet",
@@ -873,10 +736,6 @@ def _generate_all_baseline_commands(playground, binhost):
# autounmask:
# If EMERGE_DEFAULT_OPTS contains --autounmask=n, then --autounmask
# must be specified with --autounmask-continue.
- # test_commands[
- # "EMERGE_DEFAULT_OPTS=--autounmask=n "
- # "emerge --autounmask --autounmask-continue dev-libs/C"
- # ] =
Emerge(
"--autounmask",
"--autounmask-continue",
@@ -885,7 +744,6 @@ def _generate_all_baseline_commands(playground, binhost):
),
# Verify that the above --autounmask-continue command caused
# USE=flag to be applied correctly to dev-libs/D.
- # test_commands["portageq match {eroot} dev-libs/D[flag]"] =
Portageq(
"match",
eroot,
@@ -897,53 +755,32 @@ def _generate_all_baseline_commands(playground, binhost):
cross_prefix_seq = [
# Test cross-prefix usage, including chpathtool for binpkgs.
# EAPI 7
- # test_commands["EPREFIX={cross_prefix} emerge dev-libs/C"] =
Emerge("dev-libs/C", env_mod={"EPREFIX": cross_prefix}),
- # test_commands[
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/C"
- # ] =
Portageq(
"has_version", cross_prefix, "dev-libs/C", env_mod={"EPREFIX": cross_prefix}
),
- # test_commands[
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/D"
- # ] =
Portageq(
"has_version", cross_prefix, "dev-libs/D", env_mod={"EPREFIX": cross_prefix}
),
- # test_commands["ROOT={cross_root} emerge dev-libs/D"] =
Emerge("dev-libs/D", env_mod={"ROOT": cross_root}),
- # test_commands["portageq has_version {cross_eroot} dev-libs/D"] =
Portageq(
"has_version",
cross_eroot,
"dev-libs/D",
),
# EAPI 5
- # test_commands["EPREFIX={cross_prefix} emerge -K dev-libs/A"] =
Emerge("--usepkgonly", "dev-libs/A", env_mod={"EPREFIX": cross_prefix}),
- # test_commands[
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/A"
- # ] =
Portageq(
"has_version", cross_prefix, "dev-libs/A", env_mod={"EPREFIX": cross_prefix}
),
- # test_commands[
- # "EPREFIX={cross_prefix} portageq has_version {cross_prefix} dev-libs/B"
- # ] =
Portageq(
"has_version", cross_prefix, "dev-libs/B", env_mod={"EPREFIX": cross_prefix}
),
- # test_commands["EPREFIX={cross_prefix} emerge -Cq dev-libs/B"] =
Emerge("-C", "--quiet", "dev-libs/B", env_mod={"EPREFIX": cross_prefix}),
- # test_commands["EPREFIX={cross_prefix} emerge -Cq dev-libs/A"] =
Emerge("-C", "--quiet", "dev-libs/A", env_mod={"EPREFIX": cross_prefix}),
- # test_commands["EPREFIX={cross_prefix} emerge dev-libs/A"] =
Emerge("dev-libs/A", env_mod={"EPREFIX": cross_prefix}),
# Test ROOT support
- # test_commands["ROOT={cross_root} emerge dev-libs/B"] =
Emerge("dev-libs/B", env_mod={"ROOT": cross_root}),
- # test_commands["portageq has_version {cross_eroot} dev-libs/B"] =
Portageq(
"has_version",
cross_eroot,
@@ -966,13 +803,8 @@ def _generate_all_baseline_commands(playground, binhost):
if fetch_bin is None:
test_commands["binhost emerge"] = Noop()
- # for command_name in _BASELINE_COMMAND_FETCHCOMMAND_SEQUENCE:
- # test_commands[command_name] = Noop()
else:
- # test_commands["mv {pkgdir} {binhost_dir}"] = lambda: os.rename(
- # pkgdir, binhost_dir
- # )
- # test_commands["emerge -eG dev-libs/A"] =
+ # The next emerge has been added to split this test from the rest:
make_package = Emerge("--buildpkg", "dev-libs/A")
getbinpkgonly = Emerge(
"-e",
@@ -980,19 +812,13 @@ def _generate_all_baseline_commands(playground, binhost):
"dev-libs/A",
preparation=lambda: os.rename(pkgdir, binhost_dir),
)
- # test_commands["rm -R {pkgdir}"] = lambda: shutil.rmtree(pkgdir)
- # test_commands["mv {binhost_dir} {pkgdir}"] = lambda: os.rename(
- # binhost_dir, pkgdir
- # )
- # Remove binrepos.conf and test PORTAGE_BINHOST.
- # test_commands["rm {binrepos_conf_file}"] = lambda: os.unlink(binrepos_conf_file)
+ # Remove binrepos.conf and test PORTAGE_BINHOST.
def _replace_pkgdir_and_rm_binrepos_conf_file():
shutil.rmtree(pkgdir)
os.rename(binhost_dir, pkgdir)
os.unlink(binrepos_conf_file)
- # test_commands["PORTAGE_BINHOST={binhost_uri} emerge -feG dev-libs/A"] =
getbinpkgonly_fetchonly = Emerge(
"-fe",
"--getbinpkgonly",
diff --git a/lib/portage/tests/emerge/test_simple.py b/lib/portage/tests/emerge/test_baseline.py
similarity index 95%
rename from lib/portage/tests/emerge/test_simple.py
rename to lib/portage/tests/emerge/test_baseline.py
index b23e10ddfd..55722d900e 100644
--- a/lib/portage/tests/emerge/test_simple.py
+++ b/lib/portage/tests/emerge/test_baseline.py
@@ -4,7 +4,7 @@
"""This module defines a baseline for portage's functionality.
Multiple portage commands are executed in a sequence in a playground
-(see the ``simple_command`` fixture in ``conftest.py``).
+(see the ``baseline_command`` fixture in ``conftest.py``).
All the commands are triggered from the ``test_portage_baseline`` test.
That test is marked with::
@@ -16,7 +16,12 @@ so that it can selected with that marker, i.e.::
pytest -m ft
``ft`` stands for *functional test*, since that's what it is, a
-functional or end-to-end test.
+functional or end-to-end test, ensuring some functionality of portage.
+
+The test also works with pytest-xdist, e.g.::
+
+ pytest -m ft -n 8
+
"""
import subprocess
@@ -60,7 +65,7 @@ move dev-util/git dev-vcs/git
def test_portage_baseline(async_loop, playground, binhost, baseline_command):
async_loop.run_until_complete(
asyncio.ensure_future(
- _async_test_simple(
+ _async_test_baseline(
playground,
binhost,
baseline_command,
@@ -70,14 +75,12 @@ def test_portage_baseline(async_loop, playground, binhost, baseline_command):
)
-async def _async_test_simple(playground, binhost, commands):
+async def _async_test_baseline(playground, binhost, commands):
debug = playground.debug
settings = playground.settings
trees = playground.trees
eprefix = settings["EPREFIX"]
- # test_commands = make_test_commands(settings, trees, binhost["uri"])
-
test_repo_location = settings.repositories["test_repo"].location
var_cache_edb = os.path.join(eprefix, "var", "cache", "edb")
cachedir = os.path.join(var_cache_edb, "dep")
next reply other threads:[~2023-10-30 3:14 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-30 3:14 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-02-25 8:25 [gentoo-commits] proj/portage:master commit in: lib/portage/tests/emerge/ Sam James
2024-02-24 3:36 Zac Medico
2024-01-03 19:59 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-10-30 3:14 Sam James
2023-05-26 15:45 Sam James
2023-05-26 15:45 Sam James
2022-09-25 19:12 Mike Gilbert
2021-01-18 12:20 Zac Medico
2020-10-17 9:21 Zac Medico
2020-10-12 18:03 Zac Medico
2020-08-03 23:28 Zac Medico
2020-08-03 19:30 Zac Medico
2020-03-08 22:29 Zac Medico
2020-03-08 7:33 Zac Medico
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1698635665.10e6a558c4404d6a0fa8c92634747a1105db6997.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox