Statistics
| Branch: | Tag: | Revision:

root / test / ganeti.rapi.resources_unittest.py @ c54784d9

History | View | Annotate | Download (2.5 kB)

1 4cbd4462 Oleksiy Mishchenko
#!/usr/bin/python
2 4cbd4462 Oleksiy Mishchenko
#
3 4cbd4462 Oleksiy Mishchenko
4 4cbd4462 Oleksiy Mishchenko
# Copyright (C) 2007, 2008 Google Inc.
5 4cbd4462 Oleksiy Mishchenko
#
6 4cbd4462 Oleksiy Mishchenko
# This program is free software; you can redistribute it and/or modify
7 4cbd4462 Oleksiy Mishchenko
# it under the terms of the GNU General Public License as published by
8 4cbd4462 Oleksiy Mishchenko
# the Free Software Foundation; either version 2 of the License, or
9 4cbd4462 Oleksiy Mishchenko
# (at your option) any later version.
10 4cbd4462 Oleksiy Mishchenko
#
11 4cbd4462 Oleksiy Mishchenko
# This program is distributed in the hope that it will be useful, but
12 4cbd4462 Oleksiy Mishchenko
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 4cbd4462 Oleksiy Mishchenko
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 4cbd4462 Oleksiy Mishchenko
# General Public License for more details.
15 4cbd4462 Oleksiy Mishchenko
#
16 4cbd4462 Oleksiy Mishchenko
# You should have received a copy of the GNU General Public License
17 4cbd4462 Oleksiy Mishchenko
# along with this program; if not, write to the Free Software
18 4cbd4462 Oleksiy Mishchenko
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 4cbd4462 Oleksiy Mishchenko
# 02110-1301, USA.
20 4cbd4462 Oleksiy Mishchenko
21 4cbd4462 Oleksiy Mishchenko
22 10b207d4 Oleksiy Mishchenko
"""Script for unittesting the RAPI resources module"""
23 4cbd4462 Oleksiy Mishchenko
24 4cbd4462 Oleksiy Mishchenko
25 4cbd4462 Oleksiy Mishchenko
import unittest
26 4cbd4462 Oleksiy Mishchenko
import tempfile
27 4cbd4462 Oleksiy Mishchenko
28 4cbd4462 Oleksiy Mishchenko
from ganeti import errors
29 a0638838 Oleksiy Mishchenko
from ganeti import http
30 a0638838 Oleksiy Mishchenko
31 441e7cfd Oleksiy Mishchenko
from ganeti.rapi import connector 
32 441e7cfd Oleksiy Mishchenko
from ganeti.rapi import rlib1 
33 4cbd4462 Oleksiy Mishchenko
34 4cbd4462 Oleksiy Mishchenko
35 4cbd4462 Oleksiy Mishchenko
class MapperTests(unittest.TestCase):
36 4cbd4462 Oleksiy Mishchenko
  """Tests for remote API URI mapper."""
37 4cbd4462 Oleksiy Mishchenko
38 4cbd4462 Oleksiy Mishchenko
  def setUp(self):
39 10b207d4 Oleksiy Mishchenko
    self.map = connector.Mapper()
40 4cbd4462 Oleksiy Mishchenko
41 4cbd4462 Oleksiy Mishchenko
  def _TestUri(self, uri, result):
42 4cbd4462 Oleksiy Mishchenko
    self.assertEquals(self.map.getController(uri), result)
43 4cbd4462 Oleksiy Mishchenko
44 4cbd4462 Oleksiy Mishchenko
  def _TestFailingUri(self, uri):
45 a0638838 Oleksiy Mishchenko
    self.failUnlessRaises(http.HTTPNotFound, self.map.getController, uri)
46 4cbd4462 Oleksiy Mishchenko
47 4cbd4462 Oleksiy Mishchenko
  def testMapper(self):
48 10b207d4 Oleksiy Mishchenko
    """Testing Mapper"""
49 4cbd4462 Oleksiy Mishchenko
50 10b207d4 Oleksiy Mishchenko
    self._TestUri("/tags", (rlib1.R_tags, [], {}))
51 10b207d4 Oleksiy Mishchenko
    self._TestUri("/instances", (rlib1.R_instances, [], {}))
52 4cbd4462 Oleksiy Mishchenko
53 4cbd4462 Oleksiy Mishchenko
    self._TestUri('/instances/www.test.com',
54 10b207d4 Oleksiy Mishchenko
                  (rlib1.R_instances_name,
55 4cbd4462 Oleksiy Mishchenko
                   ['www.test.com'],
56 4cbd4462 Oleksiy Mishchenko
                   {}))
57 4cbd4462 Oleksiy Mishchenko
58 4cbd4462 Oleksiy Mishchenko
    self._TestUri('/instances/www.test.com/tags?f=5&f=6&alt=html',
59 10b207d4 Oleksiy Mishchenko
                  (rlib1.R_instances_name_tags,
60 4cbd4462 Oleksiy Mishchenko
                   ['www.test.com'],
61 4cbd4462 Oleksiy Mishchenko
                   {'alt': ['html'],
62 4cbd4462 Oleksiy Mishchenko
                    'f': ['5', '6'],
63 4cbd4462 Oleksiy Mishchenko
                   }))
64 4cbd4462 Oleksiy Mishchenko
65 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/tag")
66 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/instances/does/not/exist")
67 4cbd4462 Oleksiy Mishchenko
68 4cbd4462 Oleksiy Mishchenko
69 4cbd4462 Oleksiy Mishchenko
class R_RootTests(unittest.TestCase):
70 4cbd4462 Oleksiy Mishchenko
  """Testing for R_root class."""
71 4cbd4462 Oleksiy Mishchenko
72 4cbd4462 Oleksiy Mishchenko
  def setUp(self):
73 441e7cfd Oleksiy Mishchenko
    self.root = connector.R_root(None, None, None, None)
74 4cbd4462 Oleksiy Mishchenko
75 4cbd4462 Oleksiy Mishchenko
  def testGet(self):
76 4cbd4462 Oleksiy Mishchenko
    expected = [
77 4cbd4462 Oleksiy Mishchenko
      {'name': 'info', 'uri': '/info'},
78 4cbd4462 Oleksiy Mishchenko
      {'name': 'instances', 'uri': '/instances'},
79 4cbd4462 Oleksiy Mishchenko
      {'name': 'nodes', 'uri': '/nodes'},
80 4cbd4462 Oleksiy Mishchenko
      {'name': 'os', 'uri': '/os'},
81 4cbd4462 Oleksiy Mishchenko
      {'name': 'tags', 'uri': '/tags'},
82 4cbd4462 Oleksiy Mishchenko
      {'name': 'version', 'uri': '/version'},
83 4cbd4462 Oleksiy Mishchenko
      ]
84 4cbd4462 Oleksiy Mishchenko
    self.assertEquals(self.root.GET(), expected)
85 4cbd4462 Oleksiy Mishchenko
86 4cbd4462 Oleksiy Mishchenko
87 4cbd4462 Oleksiy Mishchenko
if __name__ == '__main__':
88 4cbd4462 Oleksiy Mishchenko
  unittest.main()