glance/tests/unit/test_server.py

38 lines
1.4 KiB
Python

import unittest
from webob import Request
#TODO: should this be teller.image ?
from teller import server as image_server
class TestImageController(unittest.TestCase):
def setUp(self):
conf = {}
self.image_controller = image_server.ImageController(conf)
def test_GET(self):
# uri must be specified
request = Request.blank("/image")
response = self.image_controller.GET(request)
self.assertEqual(response.status_int, 400) # should be 422?
# FIXME: need urllib.quote here?
image_uri = "http://parallax/myacct/my-image"
request = Request.blank("/image?uri=%s" % image_uri)
def mock_parallax_lookup(uri):
return {"objects": [{"uri": "teststr://chunk0"},
{"uri": "teststr://chunk1"}]}
self.image_controller.image_lookup_fn = mock_parallax_lookup
response = self.image_controller.GET(request)
self.assertEqual("chunk0chunk1", response.body)
image_uri = "http://parallax/myacct/does-not-exist"
request = Request.blank("/image?uri=%s" % image_uri)
def mock_parallax_lookup(uri):
return None
self.image_controller.image_lookup_fn = mock_parallax_lookup
response = self.image_controller.GET(request)
self.assertEqual(response.status_int, 404)
if __name__ == "__main__":
unittest.main()