Statistics
| Branch: | Tag: | Revision:

root / test / py / ganeti.rapi.resources_unittest.py @ 14933c17

History | View | Annotate | Download (2 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 5d8d232c Michael Hanselmann
from ganeti.rapi import connector
32 028c6b76 Oleksiy Mishchenko
from ganeti.rapi import rlib2
33 4cbd4462 Oleksiy Mishchenko
34 25231ec5 Michael Hanselmann
import testutils
35 25231ec5 Michael Hanselmann
36 4cbd4462 Oleksiy Mishchenko
37 4cbd4462 Oleksiy Mishchenko
class MapperTests(unittest.TestCase):
38 4cbd4462 Oleksiy Mishchenko
  """Tests for remote API URI mapper."""
39 4cbd4462 Oleksiy Mishchenko
40 4cbd4462 Oleksiy Mishchenko
  def setUp(self):
41 10b207d4 Oleksiy Mishchenko
    self.map = connector.Mapper()
42 4cbd4462 Oleksiy Mishchenko
43 4cbd4462 Oleksiy Mishchenko
  def _TestUri(self, uri, result):
44 4cbd4462 Oleksiy Mishchenko
    self.assertEquals(self.map.getController(uri), result)
45 4cbd4462 Oleksiy Mishchenko
46 4cbd4462 Oleksiy Mishchenko
  def _TestFailingUri(self, uri):
47 84f2756e Michael Hanselmann
    self.failUnlessRaises(http.HttpNotFound, self.map.getController, uri)
48 4cbd4462 Oleksiy Mishchenko
49 4cbd4462 Oleksiy Mishchenko
  def testMapper(self):
50 10b207d4 Oleksiy Mishchenko
    """Testing Mapper"""
51 4cbd4462 Oleksiy Mishchenko
52 dc824c9f Oleksiy Mishchenko
    self._TestFailingUri("/tags")
53 dc824c9f Oleksiy Mishchenko
    self._TestFailingUri("/instances")
54 4e5a68f8 Oleksiy Mishchenko
    self._TestUri("/version", (rlib2.R_version, [], {}))
55 4cbd4462 Oleksiy Mishchenko
56 8c114acd Michael Hanselmann
    self._TestUri("/2/instances/www.test.com",
57 4e5a68f8 Oleksiy Mishchenko
                  (rlib2.R_2_instances_name,
58 8c114acd Michael Hanselmann
                   ["www.test.com"],
59 4cbd4462 Oleksiy Mishchenko
                   {}))
60 4cbd4462 Oleksiy Mishchenko
61 8c114acd Michael Hanselmann
    self._TestUri("/2/instances/www.test.com/tags?f=5&f=6&alt=html",
62 dc824c9f Oleksiy Mishchenko
                  (rlib2.R_2_instances_name_tags,
63 8c114acd Michael Hanselmann
                   ["www.test.com"],
64 8c114acd Michael Hanselmann
                   {"alt": ["html"],
65 8c114acd Michael Hanselmann
                    "f": ["5", "6"],
66 4cbd4462 Oleksiy Mishchenko
                   }))
67 4cbd4462 Oleksiy Mishchenko
68 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/tag")
69 4cbd4462 Oleksiy Mishchenko
    self._TestFailingUri("/instances/does/not/exist")
70 4cbd4462 Oleksiy Mishchenko
71 4cbd4462 Oleksiy Mishchenko
72 2f96c43c Michael Hanselmann
if __name__ == "__main__":
73 25231ec5 Michael Hanselmann
  testutils.GanetiTestProgram()