Gentoo Archives: gentoo-portage-dev

From: David James <davidjames@××××××.com>
To: gentoo-portage-dev@l.g.o
Cc: vapier@××××××××.org, David James <davidjames@××××××.com>
Subject: [gentoo-portage-dev] [PATCH] Add a test case for --newuse, --changed-use, and --binpkg-respect-use.
Date: Mon, 24 Feb 2014 18:14:33
Message-Id: 1393265666-8837-1-git-send-email-davidjames@google.com
1 Change-Id: I201e468c6e7cda6aa961371ad9ddc10cfab04bc7
2 ---
3 pym/portage/tests/resolver/test_useflags.py | 78 +++++++++++++++++++++++++++++
4 1 file changed, 78 insertions(+)
5 create mode 100644 pym/portage/tests/resolver/test_useflags.py
6
7 diff --git a/pym/portage/tests/resolver/test_useflags.py b/pym/portage/tests/resolver/test_useflags.py
8 new file mode 100644
9 index 0000000..0a5f3b3
10 --- /dev/null
11 +++ b/pym/portage/tests/resolver/test_useflags.py
12 @@ -0,0 +1,78 @@
13 +# Copyright 2014 Gentoo Foundation
14 +# Distributed under the terms of the GNU General Public License v2
15 +
16 +from portage.tests import TestCase
17 +from portage.tests.resolver.ResolverPlayground import ResolverPlayground, ResolverPlaygroundTestCase
18 +
19 +class UseFlagsTestCase(TestCase):
20 +
21 + def testUseFlags(self):
22 + ebuilds = {
23 + "dev-libs/A-1": { "IUSE": "X", },
24 + "dev-libs/B-1": { "IUSE": "X Y", },
25 + }
26 +
27 + installed = {
28 + "dev-libs/A-1": { "IUSE": "X", },
29 + "dev-libs/B-1": { "IUSE": "X", },
30 + }
31 +
32 + binpkgs = installed
33 +
34 + user_config = {
35 + "package.use": ( "dev-libs/A X", ),
36 + "use.force": ( "Y", ),
37 + }
38 +
39 + test_cases = (
40 + #default: don't reinstall on use flag change
41 + ResolverPlaygroundTestCase(
42 + ["dev-libs/A"],
43 + options = {"--selective": True, "--usepkg": True},
44 + success = True,
45 + mergelist = []),
46 +
47 + #default: respect use flags for binpkgs
48 + ResolverPlaygroundTestCase(
49 + ["dev-libs/A"],
50 + options = {"--usepkg": True},
51 + success = True,
52 + mergelist = ["dev-libs/A-1"]),
53 +
54 + #--binpkg-respect-use=n: use binpkgs with different use flags
55 + ResolverPlaygroundTestCase(
56 + ["dev-libs/A"],
57 + options = {"--binpkg-respect-use": "n", "--usepkg": True},
58 + success = True,
59 + mergelist = ["[binary]dev-libs/A-1"]),
60 +
61 + #--reinstall=changed-use: reinstall if use flag changed
62 + ResolverPlaygroundTestCase(
63 + ["dev-libs/A"],
64 + options = {"--reinstall": "changed-use", "--usepkg": True},
65 + success = True,
66 + mergelist = ["dev-libs/A-1"]),
67 +
68 + #--reinstall=changed-use: don't reinstall on new use flag
69 + ResolverPlaygroundTestCase(
70 + ["dev-libs/B"],
71 + options = {"--reinstall": "changed-use", "--usepkg": True},
72 + success = True,
73 + mergelist = []),
74 +
75 + #--newuse: reinstall on new use flag
76 + ResolverPlaygroundTestCase(
77 + ["dev-libs/B"],
78 + options = {"--newuse": True, "--usepkg": True},
79 + success = True,
80 + mergelist = ["dev-libs/B-1"]),
81 + )
82 +
83 + playground = ResolverPlayground(ebuilds=ebuilds,
84 + binpkgs=binpkgs, installed=installed, user_config=user_config)
85 + try:
86 + for test_case in test_cases:
87 + playground.run_TestCase(test_case)
88 + self.assertEqual(test_case.test_success, True, test_case.fail_msg)
89 + finally:
90 + playground.cleanup()
91 --
92 1.8.0.2

Replies