Statistics
| Branch: | Tag: | Revision:

root / test / py / ganeti.utils.version_unittest.py @ 560ef132

History | View | Annotate | Download (3.8 kB)

1 1eda3dd3 Klaus Aehlig
#!/usr/bin/python
2 1eda3dd3 Klaus Aehlig
#
3 1eda3dd3 Klaus Aehlig
4 1eda3dd3 Klaus Aehlig
# Copyright (C) 2013 Google Inc.
5 1eda3dd3 Klaus Aehlig
#
6 1eda3dd3 Klaus Aehlig
# This program is free software; you can redistribute it and/or modify
7 1eda3dd3 Klaus Aehlig
# it under the terms of the GNU General Public License as published by
8 1eda3dd3 Klaus Aehlig
# the Free Software Foundation; either version 2 of the License, or
9 1eda3dd3 Klaus Aehlig
# (at your option) any later version.
10 1eda3dd3 Klaus Aehlig
#
11 1eda3dd3 Klaus Aehlig
# This program is distributed in the hope that it will be useful, but
12 1eda3dd3 Klaus Aehlig
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 1eda3dd3 Klaus Aehlig
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 1eda3dd3 Klaus Aehlig
# General Public License for more details.
15 1eda3dd3 Klaus Aehlig
#
16 1eda3dd3 Klaus Aehlig
# You should have received a copy of the GNU General Public License
17 1eda3dd3 Klaus Aehlig
# along with this program; if not, write to the Free Software
18 1eda3dd3 Klaus Aehlig
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 1eda3dd3 Klaus Aehlig
# 02110-1301, USA.
20 1eda3dd3 Klaus Aehlig
21 1eda3dd3 Klaus Aehlig
22 1eda3dd3 Klaus Aehlig
"""Script for unittesting the version utility functions"""
23 1eda3dd3 Klaus Aehlig
24 1eda3dd3 Klaus Aehlig
import unittest
25 1eda3dd3 Klaus Aehlig
26 1eda3dd3 Klaus Aehlig
from ganeti.utils import version
27 1eda3dd3 Klaus Aehlig
28 1eda3dd3 Klaus Aehlig
import testutils
29 1eda3dd3 Klaus Aehlig
30 1eda3dd3 Klaus Aehlig
class ParseVersionTest(unittest.TestCase):
31 1eda3dd3 Klaus Aehlig
    def testParseVersion(self):
32 1eda3dd3 Klaus Aehlig
        self.assertEquals(version.ParseVersion("2.10"), (2, 10, 0))
33 1eda3dd3 Klaus Aehlig
        self.assertEquals(version.ParseVersion("2.10.1"), (2, 10, 1))
34 1eda3dd3 Klaus Aehlig
        self.assertEquals(version.ParseVersion("2.10.1~beta2"), (2, 10, 1))
35 1eda3dd3 Klaus Aehlig
        self.assertEquals(version.ParseVersion("2"), None)
36 1eda3dd3 Klaus Aehlig
        self.assertEquals(version.ParseVersion("pink bunny"), None)
37 1eda3dd3 Klaus Aehlig
38 0890e0d1 Klaus Aehlig
class UpgradeRangeTest(unittest.TestCase):
39 0890e0d1 Klaus Aehlig
    def testUpgradeRange(self):
40 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,11,0), current=(2,10,0)),
41 0890e0d1 Klaus Aehlig
                          None)
42 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,10,0), current=(2,10,0)),
43 0890e0d1 Klaus Aehlig
                          None)
44 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,11,3), current=(2,12,0)),
45 0890e0d1 Klaus Aehlig
                          None)
46 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,11,3), current=(2,12,99)),
47 0890e0d1 Klaus Aehlig
                          None)
48 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((3,0,0), current=(2,12,0)),
49 0890e0d1 Klaus Aehlig
                          "different major versions")
50 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,12,0), current=(3,0,0)),
51 0890e0d1 Klaus Aehlig
                          "different major versions")
52 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,10,0), current=(2,12,0)),
53 0890e0d1 Klaus Aehlig
                          "can only downgrade one minor version at a time")
54 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,9,0), current=(2,10,0)),
55 0890e0d1 Klaus Aehlig
                          "automatic upgrades only supported from 2.10 onwards")
56 0890e0d1 Klaus Aehlig
        self.assertEquals(version.UpgradeRange((2,10,0), current=(2,9,0)),
57 0890e0d1 Klaus Aehlig
                          "automatic upgrades only supported from 2.10 onwards")
58 0890e0d1 Klaus Aehlig
59 78521495 Klaus Aehlig
class ShouldCfgdowngradeTest(unittest.TestCase):
60 78521495 Klaus Aehlig
    def testShouldCfgDowngrade(self):
61 78521495 Klaus Aehlig
        self.assertTrue(version.ShouldCfgdowngrade((2,9,3), current=(2,10,0)))
62 78521495 Klaus Aehlig
        self.assertTrue(version.ShouldCfgdowngrade((2,9,0), current=(2,10,4)))
63 78521495 Klaus Aehlig
        self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(2,11,0)))
64 78521495 Klaus Aehlig
        self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(3,10,0)))
65 78521495 Klaus Aehlig
        self.assertFalse(version.ShouldCfgdowngrade((2,10,0), current=(3,10,0)))
66 78521495 Klaus Aehlig
67 1eda3dd3 Klaus Aehlig
68 2f1278d8 Klaus Aehlig
class IsCorrectConfigVersionTest(unittest.TestCase):
69 2f1278d8 Klaus Aehlig
    def testIsCorrectConfigVersion(self):
70 2f1278d8 Klaus Aehlig
        self.assertTrue(version.IsCorrectConfigVersion((2,10,1), (2,10,0)))
71 2f1278d8 Klaus Aehlig
        self.assertFalse(version.IsCorrectConfigVersion((2,11,0), (2,10,0)))
72 2f1278d8 Klaus Aehlig
        self.assertFalse(version.IsCorrectConfigVersion((3,10,0), (2,10,0)))
73 2f1278d8 Klaus Aehlig
74 2f1278d8 Klaus Aehlig
75 9b85ede9 Klaus Aehlig
class IsBeforeTest(unittest.TestCase):
76 9b85ede9 Klaus Aehlig
    def testIsBefore(self):
77 9b85ede9 Klaus Aehlig
        self.assertTrue(version.IsBefore(None, 2, 10, 0))
78 9b85ede9 Klaus Aehlig
        self.assertFalse(version.IsBefore((2, 10, 0), 2, 10, 0))
79 9b85ede9 Klaus Aehlig
        self.assertTrue(version.IsBefore((2, 10, 0), 2, 10, 1))
80 9b85ede9 Klaus Aehlig
        self.assertFalse(version.IsBefore((2, 10, 1), 2, 10, 0))
81 9b85ede9 Klaus Aehlig
        self.assertTrue(version.IsBefore((2, 10, 1), 2, 11, 0))
82 9b85ede9 Klaus Aehlig
        self.assertFalse(version.IsBefore((2, 11, 0), 2, 10, 3))
83 9b85ede9 Klaus Aehlig
84 9b85ede9 Klaus Aehlig
85 1eda3dd3 Klaus Aehlig
if __name__ == "__main__":
86 1eda3dd3 Klaus Aehlig
  testutils.GanetiTestProgram()