Add the --nombr bootloader option in pykickstart
[pykickstart.git] / tests / parser / post.py
bloba425ea6e22c37544b81687c8077271f3a63df37c
1 import unittest
2 from tests.baseclass import *
4 from pykickstart import constants
5 from pykickstart.errors import KickstartParseError
6 from pykickstart import version
8 class Script_Includes_Percent_Sign(ParserTest):
9 ks = """
10 %post
11 echo "# Added by kickstart
12 %wheel ALL=(ALL) ALL" >> /etc/sudoers
13 %end
14 """
16 def runTest(self):
17 self.parser.readKickstartFromString(self.ks)
18 self.assertEqual(lan(self.handler.scripts), 1)
20 class Simple_Terminated_TestCase(ParserTest):
21 ks = """
22 %post
23 ls /tmp
24 %end
25 """
27 def runTest(self):
28 self.parser.readKickstartFromString(self.ks)
29 self.assertEqual(len(self.handler.scripts), 1)
31 # Verify the script defaults.
32 script = self.handler.scripts[0]
33 self.assertEqual(script.interp, "/bin/sh")
34 self.assertTrue(script.inChroot)
35 self.assertEqual(script.lineno, 2)
36 self.assertFalse(script.errorOnFail)
37 self.assertEqual(script.type, constants.KS_SCRIPT_POST)
39 # Also verify the body, which is the most important part.
40 self.assertEqual(script.script.rstrip(), "ls /tmp")
42 class Simple_Header_TestCase(ParserTest):
43 ks = """
44 %post --interpreter /usr/bin/python --erroronfail --log=/tmp/blah --nochroot
45 ls /tmp
46 %end
47 """
49 def runTest(self):
50 self.parser.readKickstartFromString(self.ks)
51 self.assertEqual(len(self.handler.scripts), 1)
53 # Verify the changes we made in the header.
54 script = self.handler.scripts[0]
55 self.assertEqual(script.interp, "/usr/bin/python")
56 self.assertFalse(script.inChroot)
57 self.assertTrue(script.errorOnFail)
58 self.assertEqual(script.lineno, 2)
59 self.assertEqual(script.type, constants.KS_SCRIPT_POST)
60 self.assertEqual(script.logfile, "/tmp/blah")
62 # Also verify the body, which is the most important part.
63 self.assertEqual(script.script.rstrip(), "ls /tmp")
65 class Multiple_Terminated_TestCase(ParserTest):
66 ks = """
67 %post
68 ls /tmp
69 %end
71 %post
72 ls /var
73 %end
74 """
76 def runTest(self):
77 self.parser.readKickstartFromString(self.ks)
78 self.assertEqual(len(self.handler.scripts), 2)
80 # Verify the script defaults.
81 script = self.handler.scripts[0]
82 self.assertEqual(script.interp, "/bin/sh")
83 self.assertTrue(script.inChroot)
84 self.assertFalse(script.errorOnFail)
85 self.assertEqual(script.lineno, 2)
86 self.assertEqual(script.type, constants.KS_SCRIPT_POST)
88 # Also verify the body, which is the most important part.
89 self.assertEqual(script.script.rstrip(), "ls /tmp")
91 script = self.handler.scripts[1]
92 self.assertEqual(script.script.rstrip(), "ls /var")
94 class Simple_Unterminated_TestCase(Simple_Terminated_TestCase):
95 version = version.F7
97 ks = """
98 %post
99 ls /tmp
102 class Simple_Unterminated_Fails_TestCase(Simple_Unterminated_TestCase):
103 version = version.F8
105 def runTest(self):
106 self.assertRaises(KickstartParseError, self.parser.readKickstartFromString, self.ks)
108 class Multiple_Unterminated_TestCase(Multiple_Terminated_TestCase):
109 version = version.F7
111 ks = """
112 %post
113 ls /tmp
115 %post
116 ls /var
119 class Multiple_Unterminated_Fails_TestCase(Multiple_Unterminated_TestCase):
120 version = version.F8
122 def runTest(self):
123 self.assertRaises(KickstartParseError, self.parser.readKickstartFromString, self.ks)
125 if __name__ == "__main__":
126 unittest.main()