Fixed time-sensitive tests.

I noticed that a couple of tests I recently made were
time-sensitive. This can be shown with the following quick
script:

from sys import exit
from unittest import TestSuite, TextTestRunner

from test.unit.obj.test_server import TestObjectController

s = TestSuite()
s.addTest(TestObjectController('test_GET_but_expired'))
s.addTest(TestObjectController('test_HEAD_but_expired'))
for x in xrange(200):
    if TextTestRunner().run(s).failures:
        exit('!!!!!!!!!!!!!!! TEST FAILED !!!!!!!!!!!!!!!')
print '\o/ Test ran 200 times without failure.'

Change-Id: Ifdb1920e5266aaa278baa0759fc0bfaa1aff2d0d
This commit is contained in:
gholt
2011-11-01 23:16:11 +00:00
parent 872420efdb
commit 0e2c101fba

View File

@@ -1791,19 +1791,26 @@ class TestObjectController(unittest.TestCase):
resp = self.object_controller.GET(req) resp = self.object_controller.GET(req)
self.assertEquals(resp.status_int, 200) self.assertEquals(resp.status_int, 200)
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, orig_time = object_server.time.time
headers={'X-Timestamp': normalize_timestamp(test_time - 1000), try:
'X-Delete-At': str(int(time() + 1)), t = time()
'Content-Length': '4', object_server.time.time = lambda: t
'Content-Type': 'application/octet-stream'}) req = Request.blank('/sda1/p/a/c/o',
req.body = 'TEST' environ={'REQUEST_METHOD': 'PUT'},
resp = self.object_controller.PUT(req) headers={'X-Timestamp': normalize_timestamp(test_time - 1000),
self.assertEquals(resp.status_int, 201) 'X-Delete-At': str(int(t + 1)),
'Content-Length': '4',
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'GET'}, 'Content-Type': 'application/octet-stream'})
headers={'X-Timestamp': normalize_timestamp(test_time)}) req.body = 'TEST'
resp = self.object_controller.GET(req) resp = self.object_controller.PUT(req)
self.assertEquals(resp.status_int, 200) self.assertEquals(resp.status_int, 201)
req = Request.blank('/sda1/p/a/c/o',
environ={'REQUEST_METHOD': 'GET'},
headers={'X-Timestamp': normalize_timestamp(test_time)})
resp = self.object_controller.GET(req)
self.assertEquals(resp.status_int, 200)
finally:
object_server.time.time = orig_time
orig_time = object_server.time.time orig_time = object_server.time.time
try: try:
@@ -1834,20 +1841,26 @@ class TestObjectController(unittest.TestCase):
resp = self.object_controller.HEAD(req) resp = self.object_controller.HEAD(req)
self.assertEquals(resp.status_int, 200) self.assertEquals(resp.status_int, 200)
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, orig_time = object_server.time.time
headers={'X-Timestamp': normalize_timestamp(test_time - 1000), try:
'X-Delete-At': str(int(time() + 1)), t = time()
'Content-Length': '4', object_server.time.time = lambda: t
'Content-Type': 'application/octet-stream'}) req = Request.blank('/sda1/p/a/c/o',
req.body = 'TEST' environ={'REQUEST_METHOD': 'PUT'},
resp = self.object_controller.PUT(req) headers={'X-Timestamp': normalize_timestamp(test_time - 1000),
self.assertEquals(resp.status_int, 201) 'X-Delete-At': str(int(t + 1)),
'Content-Length': '4',
req = Request.blank('/sda1/p/a/c/o', 'Content-Type': 'application/octet-stream'})
environ={'REQUEST_METHOD': 'HEAD'}, req.body = 'TEST'
headers={'X-Timestamp': normalize_timestamp(test_time)}) resp = self.object_controller.PUT(req)
resp = self.object_controller.HEAD(req) self.assertEquals(resp.status_int, 201)
self.assertEquals(resp.status_int, 200) req = Request.blank('/sda1/p/a/c/o',
environ={'REQUEST_METHOD': 'HEAD'},
headers={'X-Timestamp': normalize_timestamp(test_time)})
resp = self.object_controller.HEAD(req)
self.assertEquals(resp.status_int, 200)
finally:
object_server.time.time = orig_time
orig_time = object_server.time.time orig_time = object_server.time.time
try: try: