"""Script for unittesting the RAPI resources module"""
-import os
import unittest
import tempfile
-import time
from ganeti import errors
-from ganeti.rapi import connector
-from ganeti.rapi import httperror
-from ganeti.rapi import RESTHTTPServer
-from ganeti.rapi import rlib1
+from ganeti import http
+
+from ganeti.rapi import connector
+from ganeti.rapi import rlib2
+
+import testutils
class MapperTests(unittest.TestCase):
self.assertEquals(self.map.getController(uri), result)
def _TestFailingUri(self, uri):
- self.failUnlessRaises(httperror.HTTPNotFound, self.map.getController, uri)
+ self.failUnlessRaises(http.HttpNotFound, self.map.getController, uri)
def testMapper(self):
"""Testing Mapper"""
- self._TestUri("/tags", (rlib1.R_tags, [], {}))
- self._TestUri("/instances", (rlib1.R_instances, [], {}))
+ self._TestFailingUri("/tags")
+ self._TestFailingUri("/instances")
+ self._TestUri("/version", (rlib2.R_version, [], {}))
- self._TestUri('/instances/www.test.com',
- (rlib1.R_instances_name,
+ self._TestUri('/2/instances/www.test.com',
+ (rlib2.R_2_instances_name,
['www.test.com'],
{}))
- self._TestUri('/instances/www.test.com/tags?f=5&f=6&alt=html',
- (rlib1.R_instances_name_tags,
+ 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'],
def testGet(self):
expected = [
- {'name': 'info', 'uri': '/info'},
- {'name': 'instances', 'uri': '/instances'},
- {'name': 'nodes', 'uri': '/nodes'},
- {'name': 'os', 'uri': '/os'},
- {'name': 'tags', 'uri': '/tags'},
+ {'name': '2', 'uri': '/2'},
{'name': 'version', 'uri': '/version'},
]
self.assertEquals(self.root.GET(), expected)
-class HttpLogfileTests(unittest.TestCase):
- """Rests for HttpLogfile class."""
-
- class FakeRequest:
- FAKE_ADDRESS = "1.2.3.4"
-
- def address_string(self):
- return self.FAKE_ADDRESS
-
- def setUp(self):
- self.tmpfile = tempfile.NamedTemporaryFile()
- self.logfile = RESTHTTPServer.HttpLogfile(self.tmpfile.name)
-
- def testFormatLogTime(self):
- self._TestInTimezone(1208646123.0, "Europe/London",
- "19/Apr/2008:23:02:03 +0000")
- self._TestInTimezone(1208646123, "Europe/Zurich",
- "19/Apr/2008:23:02:03 +0000")
- self._TestInTimezone(1208646123, "Australia/Sydney",
- "19/Apr/2008:23:02:03 +0000")
-
- def _TestInTimezone(self, seconds, timezone, expected):
- """Tests HttpLogfile._FormatLogTime with a specific timezone
-
- """
- # Preserve environment
- old_TZ = os.environ.get("TZ", None)
- try:
- os.environ["TZ"] = timezone
- time.tzset()
- result = self.logfile._FormatLogTime(seconds)
- finally:
- # Restore environment
- if old_TZ is not None:
- os.environ["TZ"] = old_TZ
- elif "TZ" in os.environ:
- del os.environ["TZ"]
- time.tzset()
-
- self.assertEqual(result, expected)
-
- def testClose(self):
- self.logfile.Close()
-
- def testCloseAndWrite(self):
- request = self.FakeRequest()
- self.logfile.Close()
- self.assertRaises(errors.ProgrammerError, self.logfile.LogRequest,
- request, "Message")
-
- def testLogRequest(self):
- request = self.FakeRequest()
- self.logfile.LogRequest(request, "This is only a %s", "test")
- self.logfile.Close()
-
-
if __name__ == '__main__':
- unittest.main()
+ testutils.GanetiTestProgram()