root / test / ganeti.objects_unittest.py @ 26d3fd2f
History | View | Annotate | Download (4.5 kB)
1 | 4c14965f | Guido Trotter | #!/usr/bin/python
|
---|---|---|---|
2 | 4c14965f | Guido Trotter | #
|
3 | 4c14965f | Guido Trotter | |
4 | 4c14965f | Guido Trotter | # Copyright (C) 2006, 2007, 2008 Google Inc.
|
5 | 4c14965f | Guido Trotter | #
|
6 | 4c14965f | Guido Trotter | # This program is free software; you can redistribute it and/or modify
|
7 | 4c14965f | Guido Trotter | # it under the terms of the GNU General Public License as published by
|
8 | 4c14965f | Guido Trotter | # the Free Software Foundation; either version 2 of the License, or
|
9 | 4c14965f | Guido Trotter | # (at your option) any later version.
|
10 | 4c14965f | Guido Trotter | #
|
11 | 4c14965f | Guido Trotter | # This program is distributed in the hope that it will be useful, but
|
12 | 4c14965f | Guido Trotter | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 4c14965f | Guido Trotter | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | 4c14965f | Guido Trotter | # General Public License for more details.
|
15 | 4c14965f | Guido Trotter | #
|
16 | 4c14965f | Guido Trotter | # You should have received a copy of the GNU General Public License
|
17 | 4c14965f | Guido Trotter | # along with this program; if not, write to the Free Software
|
18 | 4c14965f | Guido Trotter | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
19 | 4c14965f | Guido Trotter | # 0.0510-1301, USA.
|
20 | 4c14965f | Guido Trotter | |
21 | 4c14965f | Guido Trotter | |
22 | 4c14965f | Guido Trotter | """Script for unittesting the objects module"""
|
23 | 4c14965f | Guido Trotter | |
24 | 4c14965f | Guido Trotter | |
25 | 4c14965f | Guido Trotter | import unittest |
26 | 4c14965f | Guido Trotter | |
27 | 7b64b9ea | René Nussbaumer | from ganeti import constants |
28 | 4c14965f | Guido Trotter | from ganeti import objects |
29 | 4c14965f | Guido Trotter | |
30 | 25231ec5 | Michael Hanselmann | import testutils |
31 | 25231ec5 | Michael Hanselmann | |
32 | 25231ec5 | Michael Hanselmann | |
33 | 4c14965f | Guido Trotter | class SimpleObject(objects.ConfigObject): |
34 | 4c14965f | Guido Trotter | __slots__ = ['a', 'b'] |
35 | 4c14965f | Guido Trotter | |
36 | 25231ec5 | Michael Hanselmann | |
37 | 4c14965f | Guido Trotter | class TestDictState(unittest.TestCase): |
38 | 4c14965f | Guido Trotter | """Simple dict tansformation tests"""
|
39 | 4c14965f | Guido Trotter | |
40 | 4c14965f | Guido Trotter | def testSimpleObjectToDict(self): |
41 | 4c14965f | Guido Trotter | o1 = SimpleObject(a='1')
|
42 | 4c14965f | Guido Trotter | self.assertEquals(o1.ToDict(), {'a': '1'}) |
43 | 4c14965f | Guido Trotter | self.assertEquals(o1.__getstate__(), {'a': '1'}) |
44 | 4c14965f | Guido Trotter | self.assertEquals(o1.__getstate__(), o1.ToDict())
|
45 | 4c14965f | Guido Trotter | o1.a = 2
|
46 | 4c14965f | Guido Trotter | o1.b = 5
|
47 | 4c14965f | Guido Trotter | self.assertEquals(o1.ToDict(), {'a': 2, 'b': 5}) |
48 | 4c14965f | Guido Trotter | o2 = SimpleObject.FromDict(o1.ToDict()) |
49 | 4c14965f | Guido Trotter | self.assertEquals(o1.ToDict(), {'a': 2, 'b': 5}) |
50 | 4c14965f | Guido Trotter | |
51 | 4c14965f | Guido Trotter | |
52 | 7b64b9ea | René Nussbaumer | class TestClusterObject(unittest.TestCase): |
53 | 7b64b9ea | René Nussbaumer | """Tests done on a L{objects.Cluster}"""
|
54 | 7b64b9ea | René Nussbaumer | |
55 | 7b64b9ea | René Nussbaumer | def setUp(self): |
56 | 7b64b9ea | René Nussbaumer | hvparams = { |
57 | 7b64b9ea | René Nussbaumer | constants.HT_FAKE: { |
58 | 7b64b9ea | René Nussbaumer | "foo": "bar", |
59 | 7b64b9ea | René Nussbaumer | "bar": "foo", |
60 | 7b64b9ea | René Nussbaumer | "foobar": "barfoo", |
61 | 7b64b9ea | René Nussbaumer | }, |
62 | 7b64b9ea | René Nussbaumer | } |
63 | 7b64b9ea | René Nussbaumer | os_hvp = { |
64 | 7b64b9ea | René Nussbaumer | "lenny-image": {
|
65 | 7b64b9ea | René Nussbaumer | constants.HT_FAKE: { |
66 | 7b64b9ea | René Nussbaumer | "foo": "baz", |
67 | 7b64b9ea | René Nussbaumer | "foobar": "foobar", |
68 | 7b64b9ea | René Nussbaumer | "blah": "blibb", |
69 | 7b64b9ea | René Nussbaumer | "blubb": "blah", |
70 | 7b64b9ea | René Nussbaumer | }, |
71 | 7b64b9ea | René Nussbaumer | constants.HT_XEN_PVM: { |
72 | 7b64b9ea | René Nussbaumer | "root_path": "/dev/sda5", |
73 | 7b64b9ea | René Nussbaumer | "foo": "foobar", |
74 | 7b64b9ea | René Nussbaumer | }, |
75 | 7b64b9ea | René Nussbaumer | }, |
76 | 7b64b9ea | René Nussbaumer | "ubuntu-hardy": {
|
77 | 7b64b9ea | René Nussbaumer | }, |
78 | 7b64b9ea | René Nussbaumer | } |
79 | 7b64b9ea | René Nussbaumer | self.fake_cl = objects.Cluster(hvparams=hvparams, os_hvp=os_hvp)
|
80 | 7b64b9ea | René Nussbaumer | self.fake_cl.UpgradeConfig()
|
81 | 7b64b9ea | René Nussbaumer | |
82 | d63479b5 | Iustin Pop | def testGetHVDefaults(self): |
83 | d63479b5 | Iustin Pop | cl = self.fake_cl
|
84 | d63479b5 | Iustin Pop | self.failUnlessEqual(cl.GetHVDefaults(constants.HT_FAKE),
|
85 | d63479b5 | Iustin Pop | cl.hvparams[constants.HT_FAKE]) |
86 | d63479b5 | Iustin Pop | self.failUnlessEqual(cl.GetHVDefaults(None), {}) |
87 | d63479b5 | Iustin Pop | self.failUnlessEqual(cl.GetHVDefaults(constants.HT_XEN_PVM,
|
88 | d63479b5 | Iustin Pop | os_name="lenny-image"),
|
89 | d63479b5 | Iustin Pop | cl.os_hvp["lenny-image"][constants.HT_XEN_PVM])
|
90 | d63479b5 | Iustin Pop | |
91 | d63479b5 | Iustin Pop | |
92 | 7b64b9ea | René Nussbaumer | def testFillHvFullMerge(self): |
93 | 7b64b9ea | René Nussbaumer | inst_hvparams = { |
94 | 7b64b9ea | René Nussbaumer | "blah": "blubb", |
95 | 7b64b9ea | René Nussbaumer | } |
96 | 7b64b9ea | René Nussbaumer | |
97 | 7b64b9ea | René Nussbaumer | fake_dict = { |
98 | 7b64b9ea | René Nussbaumer | "foo": "baz", |
99 | 7b64b9ea | René Nussbaumer | "bar": "foo", |
100 | 7b64b9ea | René Nussbaumer | "foobar": "foobar", |
101 | 7b64b9ea | René Nussbaumer | "blah": "blubb", |
102 | 7b64b9ea | René Nussbaumer | "blubb": "blah", |
103 | 7b64b9ea | René Nussbaumer | } |
104 | 7b64b9ea | René Nussbaumer | fake_inst = objects.Instance(name="foobar",
|
105 | 7b64b9ea | René Nussbaumer | os="lenny-image",
|
106 | 7b64b9ea | René Nussbaumer | hypervisor=constants.HT_FAKE, |
107 | 7b64b9ea | René Nussbaumer | hvparams=inst_hvparams) |
108 | 7b64b9ea | René Nussbaumer | self.assertEqual(fake_dict, self.fake_cl.FillHV(fake_inst)) |
109 | 7b64b9ea | René Nussbaumer | |
110 | 7b64b9ea | René Nussbaumer | def testFillHvGlobalParams(self): |
111 | 7b64b9ea | René Nussbaumer | fake_inst = objects.Instance(name="foobar",
|
112 | 7b64b9ea | René Nussbaumer | os="ubuntu-hardy",
|
113 | 7b64b9ea | René Nussbaumer | hypervisor=constants.HT_FAKE, |
114 | 7b64b9ea | René Nussbaumer | hvparams={}) |
115 | 7b64b9ea | René Nussbaumer | self.assertEqual(self.fake_cl.hvparams[constants.HT_FAKE], |
116 | 7b64b9ea | René Nussbaumer | self.fake_cl.FillHV(fake_inst))
|
117 | 7b64b9ea | René Nussbaumer | |
118 | 7b64b9ea | René Nussbaumer | def testFillHvInstParams(self): |
119 | 7b64b9ea | René Nussbaumer | inst_hvparams = { |
120 | 7b64b9ea | René Nussbaumer | "blah": "blubb", |
121 | 7b64b9ea | René Nussbaumer | } |
122 | 7b64b9ea | René Nussbaumer | fake_inst = objects.Instance(name="foobar",
|
123 | 7b64b9ea | René Nussbaumer | os="ubuntu-hardy",
|
124 | 7b64b9ea | René Nussbaumer | hypervisor=constants.HT_XEN_PVM, |
125 | 7b64b9ea | René Nussbaumer | hvparams=inst_hvparams) |
126 | 7b64b9ea | René Nussbaumer | self.assertEqual(inst_hvparams, self.fake_cl.FillHV(fake_inst)) |
127 | 7b64b9ea | René Nussbaumer | |
128 | 7b64b9ea | René Nussbaumer | def testFillHvEmptyParams(self): |
129 | 7b64b9ea | René Nussbaumer | fake_inst = objects.Instance(name="foobar",
|
130 | 7b64b9ea | René Nussbaumer | os="ubuntu-hardy",
|
131 | 7b64b9ea | René Nussbaumer | hypervisor=constants.HT_XEN_PVM, |
132 | 7b64b9ea | René Nussbaumer | hvparams={}) |
133 | 7b64b9ea | René Nussbaumer | self.assertEqual({}, self.fake_cl.FillHV(fake_inst)) |
134 | 7b64b9ea | René Nussbaumer | |
135 | 7b64b9ea | René Nussbaumer | def testFillHvPartialParams(self): |
136 | 7b64b9ea | René Nussbaumer | os = "lenny-image"
|
137 | 7b64b9ea | René Nussbaumer | fake_inst = objects.Instance(name="foobar",
|
138 | 7b64b9ea | René Nussbaumer | os=os, |
139 | 7b64b9ea | René Nussbaumer | hypervisor=constants.HT_XEN_PVM, |
140 | 7b64b9ea | René Nussbaumer | hvparams={}) |
141 | 7b64b9ea | René Nussbaumer | self.assertEqual(self.fake_cl.os_hvp[os][constants.HT_XEN_PVM], |
142 | 7b64b9ea | René Nussbaumer | self.fake_cl.FillHV(fake_inst))
|
143 | 7b64b9ea | René Nussbaumer | |
144 | 7b64b9ea | René Nussbaumer | |
145 | 4c14965f | Guido Trotter | if __name__ == '__main__': |
146 | 25231ec5 | Michael Hanselmann | testutils.GanetiTestProgram() |