Add new RHEL7 logvol objects to master
[pykickstart.git] / tests / version.py
blobb20c3cb5adb2721c03cfc74fc67af7f37e085e86
1 import unittest
2 import tempfile
3 from tests.baseclass import *
5 from pykickstart.version import *
6 from pykickstart.errors import *
7 from pykickstart.commands.vnc import *
9 def getClassName(cls):
10 return cls().__class__.__name__
12 class StringToVersion_TestCase(CommandTest):
13 def runTest(self):
15 # fail - no version specified
16 self.assertRaises(KickstartVersionError, stringToVersion, "RHEL")
17 self.assertRaises(KickstartVersionError, stringToVersion, "Red Hat Enterprise Linux")
18 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora")
19 self.assertRaises(KickstartVersionError, stringToVersion, "F")
20 self.assertRaises(KickstartVersionError, stringToVersion, "FC")
22 # fail - too old
23 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora Core 1")
24 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora Core 2")
26 # fail - incorrect syntax
27 self.assertRaises(KickstartVersionError, stringToVersion, "FC7")
28 self.assertRaises(KickstartVersionError, stringToVersion, "FC8")
29 self.assertRaises(KickstartVersionError, stringToVersion, "FC9")
30 self.assertRaises(KickstartVersionError, stringToVersion, "FC10")
31 self.assertRaises(KickstartVersionError, stringToVersion, "FC11")
32 self.assertRaises(KickstartVersionError, stringToVersion, "F1111")
33 self.assertRaises(KickstartVersionError, stringToVersion, "F 11")
35 # fail - doesn't exist
36 self.assertRaises(KickstartVersionError, stringToVersion, "Red hat Enterprise Linux 1")
38 # pass - FC3
39 self.assertEqual(stringToVersion("Fedora Core 3"), FC3)
40 self.assertEqual(stringToVersion("FC3"), FC3)
41 # pass - FC4
42 self.assertEqual(stringToVersion("Fedora Core 4"), FC4)
43 self.assertEqual(stringToVersion("FC4"), FC4)
44 # pass - FC5
45 self.assertEqual(stringToVersion("Fedora Core 5"), FC5)
46 self.assertEqual(stringToVersion("FC5"), FC5)
47 # pass - FC6
48 self.assertEqual(stringToVersion("Fedora Core 6"), FC6)
49 self.assertEqual(stringToVersion("FC6"), FC6)
50 # pass - F7
51 self.assertEqual(stringToVersion("Fedora Core 7"), F7)
52 self.assertEqual(stringToVersion("Fedora 7"), F7)
53 self.assertEqual(stringToVersion("F7"), F7)
54 # pass - F8
55 self.assertEqual(stringToVersion("Fedora Core 8"), F8)
56 self.assertEqual(stringToVersion("Fedora 8"), F8)
57 self.assertEqual(stringToVersion("F8"), F8)
58 # pass - F9
59 self.assertEqual(stringToVersion("Fedora Core 9"), F9)
60 self.assertEqual(stringToVersion("Fedora 9"), F9)
61 self.assertEqual(stringToVersion("F9"), F9)
62 # pass - F10
63 self.assertEqual(stringToVersion("Fedora Core 10"), F10)
64 self.assertEqual(stringToVersion("Fedora 10"), F10)
65 self.assertEqual(stringToVersion("F10"), F10)
66 # pass - F11
67 self.assertEqual(stringToVersion("Fedora 11"), F11)
68 self.assertEqual(stringToVersion("F11"), F11)
69 # pass - F12
70 self.assertEqual(stringToVersion("Fedora 12"), F12)
71 self.assertEqual(stringToVersion("F12"), F12)
72 # pass - F13
73 self.assertEqual(stringToVersion("Fedora 13"), F13)
74 self.assertEqual(stringToVersion("F13"), F13)
75 # pass - F14
76 self.assertEqual(stringToVersion("Fedora 14"), F14)
77 self.assertEqual(stringToVersion("F14"), F14)
78 # pass - F15
79 self.assertEqual(stringToVersion("Fedora 15"), F15)
80 self.assertEqual(stringToVersion("F15"), F15)
81 # pass - F16
82 self.assertEqual(stringToVersion("Fedora 16"), F16)
83 self.assertEqual(stringToVersion("F16"), F16)
84 # pass - F17
85 self.assertEqual(stringToVersion("Fedora 17"), F17)
86 self.assertEqual(stringToVersion("F17"), F17)
87 # pass - F18
88 self.assertEqual(stringToVersion("Fedora 18"), F18)
89 self.assertEqual(stringToVersion("F18"), F18)
90 # pass - F19
91 self.assertEqual(stringToVersion("Fedora 19"), F19)
92 self.assertEqual(stringToVersion("F19"), F19)
93 # pass - F20
94 self.assertEqual(stringToVersion("Fedora 20"), F20)
95 self.assertEqual(stringToVersion("F20"), F20)
96 # pass - F21
97 self.assertEqual(stringToVersion("Fedora 21"), F21)
98 self.assertEqual(stringToVersion("F21"), F21)
99 # pass - F22
100 self.assertEqual(stringToVersion("Fedora 22"), F22)
101 self.assertEqual(stringToVersion("F22"), F22)
103 # pass - RHEL3
104 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 3"), RHEL3)
105 self.assertEqual(stringToVersion("Red Hat Enterprise Linux AS 3"), RHEL3)
106 self.assertEqual(stringToVersion("Red Hat Enterprise Linux ES 3"), RHEL3)
107 self.assertEqual(stringToVersion("Red Hat Enterprise Linux WS 3"), RHEL3)
108 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Desktop 3"), RHEL3)
109 self.assertEqual(stringToVersion("RHEL3"), RHEL3)
111 # pass - RHEL4
112 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 4"), RHEL4)
113 self.assertEqual(stringToVersion("Red Hat Enterprise Linux AS 4"), RHEL4)
114 self.assertEqual(stringToVersion("Red Hat Enterprise Linux ES 4"), RHEL4)
115 self.assertEqual(stringToVersion("Red Hat Enterprise Linux WS 4"), RHEL4)
116 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Desktop 4"), RHEL4)
117 self.assertEqual(stringToVersion("RHEL4"), RHEL4)
119 # pass - RHEL5
120 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 5"), RHEL5)
121 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 5"), RHEL5)
122 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 5"), RHEL5)
123 for MINOR in range(1,10):
124 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 5.%s" % MINOR), RHEL5)
125 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 5.%s" % MINOR), RHEL5)
126 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 5.%s" % MINOR), RHEL5)
127 self.assertEqual(stringToVersion("RHEL5"), RHEL5)
129 # pass - RHEL6
130 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 6"), RHEL6)
131 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 6"), RHEL6)
132 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 6"), RHEL6)
133 for MINOR in range(1,10):
134 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 6.%s" % MINOR), RHEL6)
135 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 6.%s" % MINOR), RHEL6)
136 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 6.%s" % MINOR), RHEL6)
137 self.assertEqual(stringToVersion("RHEL6"), RHEL6)
139 # pass - RHEL7
140 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 7"), RHEL7)
141 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 7"), RHEL7)
142 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 7"), RHEL7)
143 for MINOR in range(1,10):
144 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 7.%s" % MINOR), RHEL7)
145 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 7.%s" % MINOR), RHEL7)
146 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 7.%s" % MINOR), RHEL7)
147 self.assertEqual(stringToVersion("RHEL7"), RHEL7)
149 class VersionToString_TestCase(CommandTest):
150 def runTest(self):
152 # Make sure DEVEL is the highest version, but RHEL versions aren't
153 # counted as devel.
154 highest = 0
155 for (ver_str,ver_num) in list(versionMap.items()):
156 if ver_str.startswith("RHEL"):
157 continue
159 highest = max(ver_num, highest)
160 self.assertEqual(highest, DEVEL)
162 # FC series
163 self.assertEqual(versionToString(FC3), "FC3")
164 self.assertEqual(versionToString(FC4), "FC4")
165 self.assertEqual(versionToString(FC5), "FC5")
166 self.assertEqual(versionToString(FC6), "FC6")
167 # F series
168 self.assertEqual(versionToString(F7), "F7")
169 self.assertEqual(versionToString(F8), "F8")
170 self.assertEqual(versionToString(F9), "F9")
171 self.assertEqual(versionToString(F10), "F10")
172 self.assertEqual(versionToString(F10, skipDevel=True), "F10")
173 self.assertEqual(versionToString(F10, skipDevel=False), "F10")
174 self.assertEqual(versionToString(F11, skipDevel=True), "F11")
175 self.assertEqual(versionToString(F11, skipDevel=False), "F11")
176 self.assertEqual(versionToString(F12, skipDevel=True), "F12")
177 self.assertEqual(versionToString(F13, skipDevel=True), "F13")
178 self.assertEqual(versionToString(F14, skipDevel=True), "F14")
179 self.assertEqual(versionToString(F15, skipDevel=True), "F15")
180 self.assertEqual(versionToString(F16, skipDevel=True), "F16")
181 self.assertEqual(versionToString(F17, skipDevel=True), "F17")
182 self.assertEqual(versionToString(F18, skipDevel=True), "F18")
183 self.assertEqual(versionToString(F19, skipDevel=True), "F19")
184 self.assertEqual(versionToString(F20, skipDevel=True), "F20")
185 self.assertEqual(versionToString(F21, skipDevel=True), "F21")
186 self.assertEqual(versionToString(F22, skipDevel=True), "F22")
187 self.assertEqual(versionToString(F22, skipDevel=False), "DEVEL")
188 # RHEL series
189 self.assertEqual(versionToString(RHEL3), "RHEL3")
190 self.assertEqual(versionToString(RHEL4), "RHEL4")
191 self.assertEqual(versionToString(RHEL5), "RHEL5")
192 self.assertEqual(versionToString(RHEL6), "RHEL6")
193 self.assertEqual(versionToString(RHEL7), "RHEL7")
195 # fail
196 self.assertRaises(KickstartVersionError, versionToString, 47)
198 class returnClassForVersion_TestCase(CommandTest):
199 def runTest(self):
201 # Test that everything in version.versionMap has a handler, except
202 # for DEVEL.
203 for (name, vers) in list(versionMap.items()):
204 if name == "DEVEL":
205 continue
207 self.assertEqual(returnClassForVersion(vers).version, vers)
209 # Load the handlers
210 import pykickstart.handlers
211 for module in loadModules(pykickstart.handlers.__path__[0], cls_pattern="Handler", skip_list=["control"]):
212 if module.__name__.endswith("Handler") and module.__name__ not in ["BaseHandler"]:
213 # What is the version of the handler?
214 vers = module.__name__.replace("Handler","")
215 self.assertTrue(vers in versionMap)
216 # Ensure that returnClassForVersion returns what we expect
217 self.assertEqual(getClassName(returnClassForVersion(versionMap[vers])), getClassName(module))
219 class versionFromFile_TestCase(CommandTest):
220 def runTest(self):
222 def write_ks_cfg(buf):
223 (fd, name) = tempfile.mkstemp(prefix="ks-", suffix=".cfg", dir="/tmp")
224 os.write(fd, buf)
225 os.close(fd)
226 return name
228 # no version specified
229 ks_cfg = '''
230 # This is a sample kickstart file
231 rootpw testing123
232 cdrom
234 ks_cfg = write_ks_cfg(ks_cfg)
235 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
236 os.unlink(ks_cfg)
238 # proper format ... DEVEL
239 ks_cfg = '''
240 # This is a sample kickstart file
241 #version=DEVEL
242 rootpw testing123
243 cdrom
245 ks_cfg = write_ks_cfg(ks_cfg)
246 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
247 os.unlink(ks_cfg)
249 # proper format ... RHEL3
250 ks_cfg = '''
251 # This is a sample kickstart file
252 #version=RHEL3
253 rootpw testing123
254 cdrom
256 ks_cfg = write_ks_cfg(ks_cfg)
257 self.assertEqual(versionFromFile(ks_cfg), RHEL3)
258 os.unlink(ks_cfg)
260 # improper format ... fallback to DEVEL
261 ks_cfg = '''
262 # This is a sample kickstart file
263 # version: FC3
264 rootpw testing123
265 cdrom
267 ks_cfg = write_ks_cfg(ks_cfg)
268 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
269 os.unlink(ks_cfg)
271 # unknown version specified ... raise exception
272 ks_cfg = '''
273 # This is a sample kickstart file
274 #version=RHEL5000
275 rootpw testing123
276 cdrom
278 ks_cfg = write_ks_cfg(ks_cfg)
279 self.assertRaises(KickstartVersionError, versionFromFile, ks_cfg)
280 os.unlink(ks_cfg)
282 if __name__ == "__main__":
283 unittest.main()