Revision a0638838 test/ganeti.rapi.resources_unittest.py

b/test/ganeti.rapi.resources_unittest.py
22 22
"""Script for unittesting the RAPI resources module"""
23 23

  
24 24

  
25
import os
26 25
import unittest
27 26
import tempfile
28
import time
29 27

  
30 28
from ganeti import errors
29
from ganeti import http
30

  
31 31
from ganeti.rapi import connector 
32
from ganeti.rapi import httperror
33 32
from ganeti.rapi import RESTHTTPServer
34 33
from ganeti.rapi import rlib1 
35 34

  
......
44 43
    self.assertEquals(self.map.getController(uri), result)
45 44

  
46 45
  def _TestFailingUri(self, uri):
47
    self.failUnlessRaises(httperror.HTTPNotFound, self.map.getController, uri)
46
    self.failUnlessRaises(http.HTTPNotFound, self.map.getController, uri)
48 47

  
49 48
  def testMapper(self):
50 49
    """Testing Mapper"""
......
86 85
    self.assertEquals(self.root.GET(), expected)
87 86

  
88 87

  
89
class HttpLogfileTests(unittest.TestCase):
90
  """Rests for HttpLogfile class."""
91

  
92
  class FakeRequest:
93
    FAKE_ADDRESS = "1.2.3.4"
94

  
95
    def address_string(self):
96
      return self.FAKE_ADDRESS
97

  
98
  def setUp(self):
99
    self.tmpfile = tempfile.NamedTemporaryFile()
100
    self.logfile = RESTHTTPServer.HttpLogfile(self.tmpfile.name)
101

  
102
  def testFormatLogTime(self):
103
    self._TestInTimezone(1208646123.0, "Europe/London",
104
                         "19/Apr/2008:23:02:03 +0000")
105
    self._TestInTimezone(1208646123, "Europe/Zurich",
106
                         "19/Apr/2008:23:02:03 +0000")
107
    self._TestInTimezone(1208646123, "Australia/Sydney",
108
                         "19/Apr/2008:23:02:03 +0000")
109

  
110
  def _TestInTimezone(self, seconds, timezone, expected):
111
    """Tests HttpLogfile._FormatLogTime with a specific timezone
112

  
113
    """
114
    # Preserve environment
115
    old_TZ = os.environ.get("TZ", None)
116
    try:
117
      os.environ["TZ"] = timezone
118
      time.tzset()
119
      result = self.logfile._FormatLogTime(seconds)
120
    finally:
121
      # Restore environment
122
      if old_TZ is not None:
123
        os.environ["TZ"] = old_TZ
124
      elif "TZ" in os.environ:
125
        del os.environ["TZ"]
126
      time.tzset()
127

  
128
    self.assertEqual(result, expected)
129

  
130
  def testClose(self):
131
    self.logfile.Close()
132

  
133
  def testCloseAndWrite(self):
134
    request = self.FakeRequest()
135
    self.logfile.Close()
136
    self.assertRaises(errors.ProgrammerError, self.logfile.LogRequest,
137
                      request, "Message")
138

  
139
  def testLogRequest(self):
140
    request = self.FakeRequest()
141
    self.logfile.LogRequest(request, "This is only a %s", "test")
142
    self.logfile.Close()
143

  
144

  
145 88
if __name__ == '__main__':
146 89
  unittest.main()

Also available in: Unified diff