Statistics
| Branch: | Tag: | Revision:

root / test / ganeti.tools.ensure_dirs_unittest.py @ 415feb2e

History | View | Annotate | Download (1.8 kB)

1 0d2bf835 René Nussbaumer
#!/usr/bin/python
2 0d2bf835 René Nussbaumer
#
3 0d2bf835 René Nussbaumer
4 0d2bf835 René Nussbaumer
# Copyright (C) 2011 Google Inc.
5 0d2bf835 René Nussbaumer
#
6 0d2bf835 René Nussbaumer
# This program is free software; you can redistribute it and/or modify
7 0d2bf835 René Nussbaumer
# it under the terms of the GNU General Public License as published by
8 0d2bf835 René Nussbaumer
# the Free Software Foundation; either version 2 of the License, or
9 0d2bf835 René Nussbaumer
# (at your option) any later version.
10 0d2bf835 René Nussbaumer
#
11 0d2bf835 René Nussbaumer
# This program is distributed in the hope that it will be useful, but
12 0d2bf835 René Nussbaumer
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 0d2bf835 René Nussbaumer
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 0d2bf835 René Nussbaumer
# General Public License for more details.
15 0d2bf835 René Nussbaumer
#
16 0d2bf835 René Nussbaumer
# You should have received a copy of the GNU General Public License
17 0d2bf835 René Nussbaumer
# along with this program; if not, write to the Free Software
18 0d2bf835 René Nussbaumer
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 0d2bf835 René Nussbaumer
# 02110-1301, USA.
20 0d2bf835 René Nussbaumer
21 0d2bf835 René Nussbaumer
22 0d2bf835 René Nussbaumer
"""Script for testing ganeti.tools.ensure_dirs"""
23 0d2bf835 René Nussbaumer
24 0d2bf835 René Nussbaumer
import unittest
25 0d2bf835 René Nussbaumer
import os.path
26 0d2bf835 René Nussbaumer
27 0d2bf835 René Nussbaumer
from ganeti.tools import ensure_dirs
28 0d2bf835 René Nussbaumer
29 0d2bf835 René Nussbaumer
import testutils
30 0d2bf835 René Nussbaumer
31 0d2bf835 René Nussbaumer
32 0d2bf835 René Nussbaumer
class TestEnsureDirsFunctions(unittest.TestCase):
33 0d2bf835 René Nussbaumer
  def testPaths(self):
34 0d2bf835 René Nussbaumer
    paths = [(path[0], path[1]) for path in ensure_dirs.GetPaths()]
35 0d2bf835 René Nussbaumer
36 0d2bf835 René Nussbaumer
    seen = []
37 0d2bf835 René Nussbaumer
    last_dirname = ""
38 0d2bf835 René Nussbaumer
    for path, pathtype in paths:
39 0d2bf835 René Nussbaumer
      self.assertTrue(pathtype in ensure_dirs.ALL_TYPES)
40 0d2bf835 René Nussbaumer
      dirname = os.path.dirname(path)
41 0d2bf835 René Nussbaumer
      if dirname != last_dirname or pathtype == ensure_dirs.DIR:
42 0d2bf835 René Nussbaumer
        if pathtype == ensure_dirs.FILE:
43 0d2bf835 René Nussbaumer
          self.assertFalse(dirname in seen,
44 0d2bf835 René Nussbaumer
                           msg="path %s; dirname %s seen in %s" % (path,
45 0d2bf835 René Nussbaumer
                                                                   dirname,
46 0d2bf835 René Nussbaumer
                                                                   seen))
47 0d2bf835 René Nussbaumer
          last_dirname = dirname
48 0d2bf835 René Nussbaumer
          seen.append(dirname)
49 0d2bf835 René Nussbaumer
        elif pathtype == ensure_dirs.DIR:
50 0d2bf835 René Nussbaumer
          self.assertFalse(path in seen)
51 0d2bf835 René Nussbaumer
          last_dirname = path
52 0d2bf835 René Nussbaumer
          seen.append(path)
53 0d2bf835 René Nussbaumer
54 0d2bf835 René Nussbaumer
55 0d2bf835 René Nussbaumer
if __name__ == "__main__":
56 0d2bf835 René Nussbaumer
  testutils.GanetiTestProgram()