blob: a063d587ea335b1c8401e747e5d3dae138ef1ff4 [file] [log] [blame]
Mike Frysingerf1ba7ad2022-09-12 05:42:57 -04001# Copyright 2019 The ChromiumOS Authors
Ned Nguyen3bbd2072019-01-28 19:33:41 -07002# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Test cros_extract_deps."""
6
Ned Nguyen3bbd2072019-01-28 19:33:41 -07007from chromite.lib import cros_test_lib
8from chromite.scripts import cros_extract_deps
9
Mike Frysinger807d8282022-04-28 22:45:17 -040010
Greg Edelstona4c9b3b2020-01-07 17:51:13 -070011pytestmark = cros_test_lib.pytestmark_inside_only
12
Ned Nguyen3bbd2072019-01-28 19:33:41 -070013
14class FlattenDepTreeTest(cros_test_lib.TestCase):
Alex Klein1699fab2022-09-08 08:46:06 -060015 """Tests for cros_extract_deps.FlattenDepTree."""
Ned Nguyen3bbd2072019-01-28 19:33:41 -070016
Alex Klein1699fab2022-09-08 08:46:06 -060017 def testFlattenDepTreeSimple(self):
18 dep_tree = {
19 "deathstar/darthvader-2.3": {
20 "action": "merge",
21 "deps": {
22 "deathstar/trooper-1.2": {
23 "action": "merge",
24 "deps": {
25 "weapon/blasterpistol-2.1": {
26 "action": "merge",
27 "deps": {},
28 "deptype": "runtime",
29 }
30 },
31 "deptype": "runtime",
Ned Nguyen3bbd2072019-01-28 19:33:41 -070032 },
Alex Klein1699fab2022-09-08 08:46:06 -060033 "deathstar/pilot-2.3": {
34 "action": "merge",
35 "deps": {},
36 "deptype": "runtime",
37 },
38 "deathstar/commander-2.3": {
39 "action": "merge",
40 "deps": {},
41 "deptype": "runtime",
42 },
Ned Nguyen3bbd2072019-01-28 19:33:41 -070043 },
44 },
Ned Nguyen3bbd2072019-01-28 19:33:41 -070045 }
Alex Klein1699fab2022-09-08 08:46:06 -060046 flatten_dep_tree = {
47 "weapon/blasterpistol-2.1": {
48 "rev_deps": ["deathstar/trooper-1.2"],
49 "category": "weapon",
50 "version": "2.1",
51 "name": "blasterpistol",
52 "deps": [],
53 "action": "merge",
Alex Klein1699fab2022-09-08 08:46:06 -060054 "full_name": "weapon/blasterpistol-2.1",
55 },
56 "deathstar/darthvader-2.3": {
57 "rev_deps": [],
58 "category": "deathstar",
59 "version": "2.3",
60 "name": "darthvader",
61 "deps": [
62 "deathstar/commander-2.3",
63 "deathstar/pilot-2.3",
64 "deathstar/trooper-1.2",
65 ],
66 "action": "merge",
Alex Klein1699fab2022-09-08 08:46:06 -060067 "full_name": "deathstar/darthvader-2.3",
68 },
69 "deathstar/pilot-2.3": {
70 "rev_deps": ["deathstar/darthvader-2.3"],
71 "category": "deathstar",
72 "version": "2.3",
73 "name": "pilot",
74 "deps": [],
75 "action": "merge",
Alex Klein1699fab2022-09-08 08:46:06 -060076 "full_name": "deathstar/pilot-2.3",
77 },
78 "deathstar/commander-2.3": {
79 "rev_deps": ["deathstar/darthvader-2.3"],
80 "category": "deathstar",
81 "version": "2.3",
82 "name": "commander",
83 "deps": [],
84 "action": "merge",
Alex Klein1699fab2022-09-08 08:46:06 -060085 "full_name": "deathstar/commander-2.3",
86 },
87 "deathstar/trooper-1.2": {
88 "rev_deps": ["deathstar/darthvader-2.3"],
89 "category": "deathstar",
90 "version": "1.2",
91 "name": "trooper",
92 "deps": ["weapon/blasterpistol-2.1"],
93 "action": "merge",
Alex Klein1699fab2022-09-08 08:46:06 -060094 "full_name": "deathstar/trooper-1.2",
95 },
96 }
97 self.assertEqual(
98 cros_extract_deps.FlattenDepTree(dep_tree), flatten_dep_tree
99 )