Call parent class tests first.
[pykickstart.git] / tests / version.py
blobe0a96770b1771caa4de650907b37e23ac120c14d
1 import unittest, shlex
2 import warnings
3 import tempfile
4 from tests.baseclass import *
6 from pykickstart.version import *
7 from pykickstart.errors import *
8 from pykickstart.commands.vnc import *
9 #from pykickstart.base import *
10 #from pykickstart.options import *
12 def getClassName(cls):
13 return cls().__class__.__name__
15 class StringToVersion_TestCase(CommandTest):
16 def runTest(self):
18 # fail - no version specified
19 self.assertRaises(KickstartVersionError, stringToVersion, "RHEL")
20 self.assertRaises(KickstartVersionError, stringToVersion, "Red Hat Enterprise Linux")
21 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora")
22 self.assertRaises(KickstartVersionError, stringToVersion, "F")
23 self.assertRaises(KickstartVersionError, stringToVersion, "FC")
25 # fail - too old
26 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora Core 1")
27 self.assertRaises(KickstartVersionError, stringToVersion, "Fedora Core 2")
29 # fail - incorrect syntax
30 self.assertRaises(KickstartVersionError, stringToVersion, "FC7")
31 self.assertRaises(KickstartVersionError, stringToVersion, "FC8")
32 self.assertRaises(KickstartVersionError, stringToVersion, "FC9")
33 self.assertRaises(KickstartVersionError, stringToVersion, "FC10")
34 self.assertRaises(KickstartVersionError, stringToVersion, "FC11")
35 self.assertRaises(KickstartVersionError, stringToVersion, "F1111")
36 self.assertRaises(KickstartVersionError, stringToVersion, "F 11")
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)
73 # pass - RHEL3
74 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 3"), RHEL3)
75 self.assertEqual(stringToVersion("Red Hat Enterprise Linux AS 3"), RHEL3)
76 self.assertEqual(stringToVersion("Red Hat Enterprise Linux ES 3"), RHEL3)
77 self.assertEqual(stringToVersion("Red Hat Enterprise Linux WS 3"), RHEL3)
78 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Desktop 3"), RHEL3)
79 self.assertEqual(stringToVersion("RHEL3"), RHEL3)
81 # pass - RHEL4
82 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 4"), RHEL4)
83 self.assertEqual(stringToVersion("Red Hat Enterprise Linux AS 4"), RHEL4)
84 self.assertEqual(stringToVersion("Red Hat Enterprise Linux ES 4"), RHEL4)
85 self.assertEqual(stringToVersion("Red Hat Enterprise Linux WS 4"), RHEL4)
86 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Desktop 4"), RHEL4)
87 self.assertEqual(stringToVersion("RHEL4"), RHEL4)
89 # pass - RHEL5
90 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 5"), RHEL5)
91 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 5"), RHEL5)
92 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 5"), RHEL5)
93 for MINOR in range(1,10):
94 self.assertEqual(stringToVersion("Red Hat Enterprise Linux 5.%s" % MINOR), RHEL5)
95 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Client 5.%s" % MINOR), RHEL5)
96 self.assertEqual(stringToVersion("Red Hat Enterprise Linux Server 5.%s" % MINOR), RHEL5)
97 self.assertEqual(stringToVersion("RHEL5"), RHEL5)
99 class VersionToString_TestCase(CommandTest):
100 def runTest(self):
102 # Make sure DEVEL is the highest version
103 highest = 0
104 for (ver_str,ver_num) in versionMap.items():
105 highest = max(ver_num, highest)
106 self.assertEqual(highest, DEVEL)
108 # FC series
109 self.assertEqual(versionToString(FC3), "FC3")
110 self.assertEqual(versionToString(FC4), "FC4")
111 self.assertEqual(versionToString(FC5), "FC5")
112 self.assertEqual(versionToString(FC6), "FC6")
113 # F series
114 self.assertEqual(versionToString(F7), "F7")
115 self.assertEqual(versionToString(F8), "F8")
116 self.assertEqual(versionToString(F9), "F9")
117 self.assertEqual(versionToString(F10), "F10")
118 self.assertEqual(versionToString(F10, skipDevel=True), "F10")
119 self.assertEqual(versionToString(F10, skipDevel=False), "F10")
120 self.assertEqual(versionToString(F11, skipDevel=True), "F11")
121 self.assertEqual(versionToString(F11, skipDevel=False), "F11")
122 self.assertEqual(versionToString(F12, skipDevel=True), "F12")
123 self.assertEqual(versionToString(F12, skipDevel=False), "DEVEL")
124 # RHEL series
125 self.assertEqual(versionToString(RHEL3), "RHEL3")
126 self.assertEqual(versionToString(RHEL4), "RHEL4")
127 self.assertEqual(versionToString(RHEL5), "RHEL5")
129 class returnClassForVersion_TestCase(CommandTest):
130 def runTest(self):
132 # Load the handlers
133 import pykickstart.handlers
134 for module in loadModules(pykickstart.handlers.__path__[0], cls_pattern="Handler", skip_list=["control"]):
135 if module.__name__.endswith("Handler") and module.__name__ not in ["BaseHandler"]:
136 # What is the version of the handler?
137 vers = module.__name__.replace("Handler","")
138 self.assertTrue(versionMap.has_key(vers))
139 # Ensure that returnClassForVersion returns what we expect
140 self.assertEqual(getClassName(returnClassForVersion(versionMap[vers])), getClassName(module))
142 # TODO - versionFromFile
144 class versionFromFile_TestCase(CommandTest):
145 def runTest(self):
147 def write_ks_cfg(buf):
148 (fd, name) = tempfile.mkstemp(prefix="ks-", suffix=".cfg", dir="/tmp")
149 os.write(fd, buf)
150 os.close(fd)
151 return name
153 # no version specified
154 ks_cfg = '''
155 # This is a sample kickstart file
156 rootpw testing123
157 cdrom
159 ks_cfg = write_ks_cfg(ks_cfg)
160 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
161 os.unlink(ks_cfg)
163 # proper format ... DEVEL
164 ks_cfg = '''
165 # This is a sample kickstart file
166 #version=DEVEL
167 rootpw testing123
168 cdrom
170 ks_cfg = write_ks_cfg(ks_cfg)
171 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
172 os.unlink(ks_cfg)
174 # proper format ... RHEL3
175 ks_cfg = '''
176 # This is a sample kickstart file
177 #version=RHEL3
178 rootpw testing123
179 cdrom
181 ks_cfg = write_ks_cfg(ks_cfg)
182 self.assertEqual(versionFromFile(ks_cfg), RHEL3)
183 os.unlink(ks_cfg)
185 # improper format ... fallback to DEVEL
186 ks_cfg = '''
187 # This is a sample kickstart file
188 # version: FC3
189 rootpw testing123
190 cdrom
192 ks_cfg = write_ks_cfg(ks_cfg)
193 self.assertEqual(versionFromFile(ks_cfg), DEVEL)
194 os.unlink(ks_cfg)
196 # unknown version specified ... raise exception
197 ks_cfg = '''
198 # This is a sample kickstart file
199 #version=RHEL5000
200 rootpw testing123
201 cdrom
203 ks_cfg = write_ks_cfg(ks_cfg)
204 self.assertRaises(KickstartVersionError, versionFromFile, ks_cfg)
205 os.unlink(ks_cfg)
207 if __name__ == "__main__":
208 unittest.main()