Skip to content
Snippets Groups Projects
ganeti.rapi.resources_unittest.py 2.3 KiB
Newer Older
#!/usr/bin/python
#

# Copyright (C) 2007, 2008 Google Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.


"""Script for unittesting the RAPI resources module"""


import unittest
import tempfile

from ganeti import errors
from ganeti import http

from ganeti.rapi import connector
from ganeti.rapi import rlib2


class MapperTests(unittest.TestCase):
  """Tests for remote API URI mapper."""

  def setUp(self):
    self.map = connector.Mapper()

  def _TestUri(self, uri, result):
    self.assertEquals(self.map.getController(uri), result)

  def _TestFailingUri(self, uri):
    self.failUnlessRaises(http.HttpNotFound, self.map.getController, uri)
    """Testing Mapper"""
    self._TestFailingUri("/tags")
    self._TestFailingUri("/instances")
Oleksiy Mishchenko's avatar
Oleksiy Mishchenko committed
    self._TestUri("/version", (rlib2.R_version, [], {}))
    self._TestUri('/2/instances/www.test.com',
Oleksiy Mishchenko's avatar
Oleksiy Mishchenko committed
                  (rlib2.R_2_instances_name,
    self._TestUri('/2/instances/www.test.com/tags?f=5&f=6&alt=html',
                  (rlib2.R_2_instances_name_tags,
                   ['www.test.com'],
                   {'alt': ['html'],
                    'f': ['5', '6'],
                   }))

    self._TestFailingUri("/tag")
    self._TestFailingUri("/instances/does/not/exist")


class R_RootTests(unittest.TestCase):
  """Testing for R_root class."""

  def setUp(self):
    self.root = connector.R_root(None, None, None)

  def testGet(self):
    expected = [
      {'name': '2', 'uri': '/2'},
      {'name': 'version', 'uri': '/version'},
      ]
    self.assertEquals(self.root.GET(), expected)


if __name__ == '__main__':
  unittest.main()