Fix an error on the printing side of handling environments.
[pykickstart.git] / tests / packages.py
blob924552c7f853beb738c1b6200ad1b72dd9f21fa3
1 from string import strip
2 import unittest
3 from tests.baseclass import *
5 from pykickstart.errors import *
6 from pykickstart.parser import Packages
7 from pykickstart.version import DEVEL, returnClassForVersion
9 class DevelPackagesBase(CommandTest):
10 @property
11 def handler(self):
12 return returnClassForVersion(DEVEL)
14 class AddGlobs_TestCase(DevelPackagesBase):
15 def runTest(self):
16 pkgs = Packages()
17 pkgs.add(["vim-*"])
18 pkgs.add(["kde*"])
20 self.assertEqual("""%packages
21 kde*
22 vim-*
24 %end""", strip(str(pkgs)))
26 class AddGroups_TestCase(DevelPackagesBase):
27 def runTest(self):
28 pkgs = Packages()
29 pkgs.add(["@GroupA"])
30 pkgs.add(["@group-b"])
31 pkgs.add(["@GroupC"])
33 # Groups are printed out in alphabetic order, so group-b comes after Group*
34 self.assertEqual("""%packages
35 @GroupA
36 @GroupC
37 @group-b
39 %end""", strip(str(pkgs)))
41 pkgs = Packages()
42 pkgs.add(["@group-a --nodefaults"])
43 self.assertEqual("""%packages
44 @group-a --nodefaults
46 %end""", strip(str(pkgs)))
48 pkgs = Packages()
49 pkgs.add(["@group-a --optional"])
50 self.assertEqual("""%packages
51 @group-a --optional
53 %end""", strip(str(pkgs)))
55 self.assertRaises(KickstartValueError, pkgs.add, ["@group-b --optional --nodefaults"])
57 class AddGroupsAndEnvironment_TestCase(DevelPackagesBase):
58 def runTest(self):
59 pkgs = Packages()
60 pkgs.add(["@^EnvironmentA"])
61 pkgs.add(["@GroupB"])
62 pkgs.add(["packageC"])
64 self.assertEqual("""%packages
65 @^EnvironmentA
66 @GroupB
67 packageC
69 %end""", strip(str(pkgs)))
71 class AddPackages_TestCase(DevelPackagesBase):
72 def runTest(self):
73 pkgs = Packages()
74 pkgs.add(["packageA"])
75 pkgs.add(["packageB"])
76 pkgs.add(["packageC"])
78 self.assertEqual("""%packages
79 packageA
80 packageB
81 packageC
83 %end""", strip(str(pkgs)))
85 class ExcludeGlobs_TestCase(DevelPackagesBase):
86 def runTest(self):
87 pkgs = Packages()
88 pkgs.add(["-kde*"])
89 pkgs.add(["-perl*"])
90 pkgs.add(["-*spell"])
92 self.assertEqual("""%packages
93 -*spell
94 -kde*
95 -perl*
97 %end""", strip(str(pkgs)))
99 class ExcludeGroups_TestCase(DevelPackagesBase):
100 def runTest(self):
101 pkgs = Packages()
102 pkgs.add(["-@Conflicts"])
103 pkgs.add(["-@Clustering"])
105 self.assertEqual("""%packages
106 -@Clustering
107 -@Conflicts
109 %end""", strip(str(pkgs)))
111 class ExcludePackage_TestCase(DevelPackagesBase):
112 def runTest(self):
113 pkgs = Packages()
114 pkgs.add(["-enlightenment"])
115 pkgs.add(["-clanlib"])
116 pkgs.add(["-libass"])
118 self.assertEqual("""%packages
119 -clanlib
120 -enlightenment
121 -libass
123 %end""", strip(str(pkgs)))
125 class Mixed1_TestCase(DevelPackagesBase):
126 def runTest(self):
127 pkgs = Packages()
128 pkgs.add(["@group-a"])
129 pkgs.add(["@group-b"])
130 pkgs.add(["-@group-a"])
132 self.assertEqual("""%packages
133 @group-b
134 -@group-a
136 %end""", strip(str(pkgs)))
138 class Mixed2_TestCase(DevelPackagesBase):
139 def runTest(self):
140 pkgs = Packages()
141 pkgs.add(["vim-enhanced"])
142 pkgs.add(["package-b"])
143 pkgs.add(["-vim-enhanced"])
145 self.assertEqual("""%packages
146 package-b
147 -vim-enhanced
149 %end""", strip(str(pkgs)))
151 class Mixed3_TestCase(DevelPackagesBase):
152 def runTest(self):
153 pkgs = Packages()
154 pkgs.add(["vim-enhanced"])
155 pkgs.add(["package-b"])
156 pkgs.add(["-vim*"])
158 self.assertEqual("""%packages
159 package-b
160 vim-enhanced
161 -vim*
163 %end""", strip(str(pkgs)))
165 class MultiLib_TestCase(DevelPackagesBase):
166 def runTest(self):
167 pkgs = Packages()
168 pkgs.default = True
169 pkgs.multiLib = True
170 self.assertEqual("""%packages --default --multilib
172 %end""", str(pkgs).strip())
174 if __name__ == "__main__":
175 unittest.main()