Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH] emerge: use parse_intermixed_args when available (bug 784566)
Date: Wed, 21 Apr 2021 04:34:39
Message-Id: 20210421043405.231322-1-zmedico@gentoo.org
1 The included unit test case previously failed with this error:
2
3 emerge: error: unrecognized arguments: dev-libs/A
4
5 Bug: https://bugs.gentoo.org/784566
6 Signed-off-by: Zac Medico <zmedico@g.o>
7 ---
8 lib/_emerge/main.py | 2 +-
9 lib/portage/tests/emerge/test_simple.py | 10 +++++++++-
10 2 files changed, 10 insertions(+), 2 deletions(-)
11
12 diff --git a/lib/_emerge/main.py b/lib/_emerge/main.py
13 index 31e690584..191be6479 100644
14 --- a/lib/_emerge/main.py
15 +++ b/lib/_emerge/main.py
16 @@ -834,7 +834,7 @@ def parse_opts(tmpcmdline, silent=False):
17
18 tmpcmdline = insert_optional_args(tmpcmdline)
19
20 - myoptions = parser.parse_args(args=tmpcmdline)
21 + myoptions = getattr(parser, "parse_intermixed_args", parser.parse_args)(args=tmpcmdline)
22
23 if myoptions.alert in true_y:
24 myoptions.alert = True
25 diff --git a/lib/portage/tests/emerge/test_simple.py b/lib/portage/tests/emerge/test_simple.py
26 index 6e282337f..5b110407f 100644
27 --- a/lib/portage/tests/emerge/test_simple.py
28 +++ b/lib/portage/tests/emerge/test_simple.py
29 @@ -1,6 +1,7 @@
30 # Copyright 2011-2021 Gentoo Authors
31 # Distributed under the terms of the GNU General Public License v2
32
33 +import argparse
34 import subprocess
35
36 import portage
37 @@ -289,7 +290,14 @@ call_has_and_best_version() {
38 port=binhost_server.server_port,
39 path=binhost_remote_path)
40
41 - test_commands = (
42 + test_commands = ()
43 +
44 + if hasattr(argparse.ArgumentParser, "parse_intermixed_args"):
45 + test_commands += (
46 + emerge_cmd + ("--oneshot", "dev-libs/A", "-v", "dev-libs/A"),
47 + )
48 +
49 + test_commands += (
50 emerge_cmd + ("--usepkgonly", "--root", cross_root, "--quickpkg-direct=y", "--quickpkg-direct-root", "/", "dev-libs/A"),
51 emerge_cmd + ("--usepkgonly", "--quickpkg-direct=y", "--quickpkg-direct-root", cross_root, "dev-libs/A"),
52 env_update_cmd,
53 --
54 2.26.2