Statistics
| Branch: | Tag: | Revision:

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

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 10b207d4 Oleksiy Mishchenko
from ganeti.rapi import connector 
32 4cbd4462 Oleksiy Mishchenko
from ganeti.rapi import RESTHTTPServer
33 10b207d4 Oleksiy Mishchenko
from ganeti.rapi import rlib1 
34 4cbd4462 Oleksiy Mishchenko
35 4cbd4462 Oleksiy Mishchenko
36 4cbd4462 Oleksiy Mishchenko
class MapperTests(unittest.TestCase):
37 4cbd4462 Oleksiy Mishchenko
  """Tests for remote API URI mapper."""
38 4cbd4462 Oleksiy Mishchenko
39 4cbd4462 Oleksiy Mishchenko
  def setUp(self):
40 10b207d4 Oleksiy Mishchenko
    self.map = connector.Mapper()
41 4cbd4462 Oleksiy Mishchenko
42 4cbd4462 Oleksiy Mishchenko
  def _TestUri(self, uri, result):
43 4cbd4462 Oleksiy Mishchenko
    self.assertEquals(self.map.getController(uri), result)
44 4cbd4462 Oleksiy Mishchenko
45 4cbd4462 Oleksiy Mishchenko
  def _TestFailingUri(self, uri):
46 a0638838 Oleksiy Mishchenko
    self.failUnlessRaises(http.HTTPNotFound, self.map.getController, uri)
47 4cbd4462 Oleksiy Mishchenko
48 4cbd4462 Oleksiy Mishchenko
  def testMapper(self):
49 10b207d4 Oleksiy Mishchenko
    """Testing Mapper"""
50 4cbd4462 Oleksiy Mishchenko
51 10b207d4 Oleksiy Mishchenko
    self._TestUri("/tags", (rlib1.R_tags, [], {}))
52 10b207d4 Oleksiy Mishchenko
    self._TestUri("/instances", (rlib1.R_instances, [], {}))
53 4cbd4462 Oleksiy Mishchenko
54 4cbd4462 Oleksiy Mishchenko
    self._TestUri('/instances/www.test.com',
55 10b207d4 Oleksiy Mishchenko
                  (rlib1.R_instances_name,
56 4cbd4462 Oleksiy Mishchenko
                   ['www.test.com'],
57 4cbd4462 Oleksiy Mishchenko
                   {}))
58 4cbd4462 Oleksiy Mishchenko
59 4cbd4462 Oleksiy Mishchenko
    self._TestUri('/instances/www.test.com/tags?f=5&f=6&alt=html',
60 10b207d4 Oleksiy Mishchenko
                  (rlib1.R_instances_name_tags,
61 4cbd4462 Oleksiy Mishchenko
                   ['www.test.com'],
62 4cbd4462 Oleksiy Mishchenko
                   {'alt': ['html'],
63 4cbd4462 Oleksiy Mishchenko
                    'f': ['5', '6'],
64 4cbd4462 Oleksiy Mishchenko
                   }))
65 4cbd4462 Oleksiy Mishchenko
66 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/tag")
67 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/instances/does/not/exist")
68 4cbd4462 Oleksiy Mishchenko
69 4cbd4462 Oleksiy Mishchenko
70 4cbd4462 Oleksiy Mishchenko
class R_RootTests(unittest.TestCase):
71 4cbd4462 Oleksiy Mishchenko
  """Testing for R_root class."""
72 4cbd4462 Oleksiy Mishchenko
73 4cbd4462 Oleksiy Mishchenko
  def setUp(self):
74 10b207d4 Oleksiy Mishchenko
    self.root = connector.R_root(None, None, None)
75 4cbd4462 Oleksiy Mishchenko
76 4cbd4462 Oleksiy Mishchenko
  def testGet(self):
77 4cbd4462 Oleksiy Mishchenko
    expected = [
78 4cbd4462 Oleksiy Mishchenko
      {'name': 'info', 'uri': '/info'},
79 4cbd4462 Oleksiy Mishchenko
      {'name': 'instances', 'uri': '/instances'},
80 4cbd4462 Oleksiy Mishchenko
      {'name': 'nodes', 'uri': '/nodes'},
81 4cbd4462 Oleksiy Mishchenko
      {'name': 'os', 'uri': '/os'},
82 4cbd4462 Oleksiy Mishchenko
      {'name': 'tags', 'uri': '/tags'},
83 4cbd4462 Oleksiy Mishchenko
      {'name': 'version', 'uri': '/version'},
84 4cbd4462 Oleksiy Mishchenko
      ]
85 4cbd4462 Oleksiy Mishchenko
    self.assertEquals(self.root.GET(), expected)
86 4cbd4462 Oleksiy Mishchenko
87 4cbd4462 Oleksiy Mishchenko
88 4cbd4462 Oleksiy Mishchenko
if __name__ == '__main__':
89 4cbd4462 Oleksiy Mishchenko
  unittest.main()