source: yum/trunk/test/complexremovetests.py

Last change on this file was 516, checked in by Yuri Dario, 11 years ago

yum: update trunk to 3.4.3.

File size: 3.3 KB
Line 
1from testbase import *
2
3class ComplexRemoveTests(OperationsTests):
4 # Three testcases. A -> B means that B requires A.
5 # 1) 0 -> L1 -> (R1 -> R2, L2 -> L3) where everything but L3 was
6 # dep-installed (removing L3 should remove everything);
7 # 2) 0 -> L1 -> (R1 -> R2, L2 -> L3) where everything but L3 and R2 was
8 # dep-installed (removing L3 should only remove L3 and L2);
9 # 3) C1 <--> C2 -> C3 where C1 and C2 were dep-installed (removing
10 # C3 should remove everything)
11 @staticmethod
12 def buildPkgs(pkgs, *args):
13 pkgs.node0 = FakePackage('foo', '2.5', '1.1', '0', 'noarch')
14 pkgs.node0.addFile('/bin/foo')
15 pkgs.node0.yumdb_info.reason = 'dep'
16
17 pkgs.lnode1 = FakePackage('bar1', '1.0')
18 pkgs.lnode1.addRequires('foo')
19 pkgs.lnode1.addRequiresPkg(pkgs.node0)
20 pkgs.node0.addRequiringPkg(pkgs.lnode1)
21 pkgs.lnode1.yumdb_info.reason = 'dep'
22
23 pkgs.lnode2 = FakePackage('bar2', '1.0')
24 pkgs.lnode2.addRequires('bar1')
25 pkgs.lnode2.addRequiresPkg(pkgs.lnode1)
26 pkgs.lnode1.addRequiringPkg(pkgs.lnode2)
27 pkgs.lnode2.yumdb_info.reason = 'dep'
28
29 pkgs.lnode3 = FakePackage('bar3', '1.0')
30 pkgs.lnode3.addRequires('bar2')
31 pkgs.lnode3.addRequiresPkg(pkgs.lnode2)
32 pkgs.lnode2.addRequiresPkg(pkgs.lnode3)
33 pkgs.lnode3.yumdb_info.reason = 'user'
34
35 pkgs.rnode1 = FakePackage('baz1', '1.0')
36 pkgs.rnode1.addRequires('bar1')
37 pkgs.rnode1.addRequiresPkg(pkgs.lnode1)
38 pkgs.lnode1.addRequiringPkg(pkgs.rnode1)
39 pkgs.rnode1.yumdb_info.reason = 'dep'
40
41 pkgs.rnode2 = FakePackage('baz2', '1.0')
42 pkgs.rnode2.addRequires('baz1')
43 pkgs.rnode2.addRequiresPkg(pkgs.rnode1)
44 pkgs.rnode1.addRequiringPkg(pkgs.rnode2)
45 pkgs.rnode2.yumdb_info.reason = 'dep'
46
47 pkgs.cycle1 = FakePackage('cycle1', '1.0')
48 pkgs.cycle1.yumdb_info.reason = 'dep'
49
50 pkgs.cycle2 = FakePackage('cycle2', '1.0')
51 pkgs.cycle2.yumdb_info.reason = 'dep'
52
53 pkgs.cycle3 = FakePackage('cycle3', '1.0')
54 pkgs.cycle3.yumdb_info.reason = 'user'
55
56
57 pkgs.cycle1.addRequires('cycle2')
58 pkgs.cycle1.addRequiresPkg(pkgs.cycle2)
59 pkgs.cycle2.addRequiringPkg(pkgs.cycle1)
60
61 pkgs.cycle2.addRequires('cycle1')
62 pkgs.cycle2.addRequiringPkg(pkgs.cycle1)
63 pkgs.cycle1.addRequiringPkg(pkgs.cycle2)
64
65 pkgs.cycle3.addRequires('cycle2')
66 pkgs.cycle3.addRequiresPkg(pkgs.cycle2)
67 pkgs.cycle2.addRequiringPkg(pkgs.cycle3)
68
69 def testRemoveCycle(self):
70 p = self.pkgs
71 res, msg = self.runOperation(['remove', 'cycle3'], [p.cycle1, p.cycle2, p.cycle3], [])
72 self.assertResult( () )
73
74 def testRemoveTree(self):
75 p = self.pkgs
76 res, msg = self.runOperation(['remove', 'bar3'], [p.node0, p.lnode1, p.lnode2, p.lnode3, p.rnode1, p.rnode2], [])
77 self.assertResult( () )
78
79 def testRemoveNeededRevdeps(self):
80 p = self.pkgs
81 p.rnode2.yumdb_info.reason = 'user'
82 res, msg = self.runOperation(['remove', 'bar3'], [p.node0, p.lnode1, p.lnode2, p.lnode3, p.rnode1, p.rnode2], [])
83 p.rnode2.yumdb_info.reason = 'dep'
84 self.assertResult( (p.node0, p.lnode1, p.rnode1, p.rnode2) )
85
Note: See TracBrowser for help on using the repository browser.