Merge "Move TestClient to test_versions"

This commit is contained in:
Jenkins 2015-09-14 22:28:26 +00:00 committed by Gerrit Code Review
commit c3fdf97437
2 changed files with 48 additions and 48 deletions

View File

@ -37,7 +37,6 @@ from paste.deploy import loadwsgi
import six
from sqlalchemy import exc
from testtools import testcase
import webob
# NOTE(ayoung)
# environment.use_eventlet must run before any of the code that will
@ -224,36 +223,6 @@ class UnexpectedExit(Exception):
pass
class TestClient(object):
def __init__(self, app=None, token=None):
self.app = app
self.token = token
def request(self, method, path, headers=None, body=None):
if headers is None:
headers = {}
if self.token:
headers.setdefault('X-Auth-Token', self.token)
req = webob.Request.blank(path)
req.method = method
for k, v in headers.items():
req.headers[k] = v
if body:
req.body = body
return req.get_response(self.app)
def get(self, path, headers=None):
return self.request('GET', path=path, headers=headers)
def post(self, path, headers=None, body=None):
return self.request('POST', path=path, headers=headers, body=body)
def put(self, path, headers=None, body=None):
return self.request('PUT', path=path, headers=headers, body=body)
def new_ref():
"""Populates a ref with attributes common to some API entities."""
return {

View File

@ -22,6 +22,7 @@ from oslo_config import cfg
from oslo_serialization import jsonutils
from six.moves import http_client
from testtools import matchers as tt_matchers
import webob
from keystone.common import json_home
from keystone import controllers
@ -622,6 +623,36 @@ V3_JSON_HOME_RESOURCES_INHERIT_ENABLED.update(
)
class TestClient(object):
def __init__(self, app=None, token=None):
self.app = app
self.token = token
def request(self, method, path, headers=None, body=None):
if headers is None:
headers = {}
if self.token:
headers.setdefault('X-Auth-Token', self.token)
req = webob.Request.blank(path)
req.method = method
for k, v in headers.items():
req.headers[k] = v
if body:
req.body = body
return req.get_response(self.app)
def get(self, path, headers=None):
return self.request('GET', path=path, headers=headers)
def post(self, path, headers=None, body=None):
return self.request('POST', path=path, headers=headers, body=body)
def put(self, path, headers=None, body=None):
return self.request('PUT', path=path, headers=headers, body=body)
class _VersionsEqual(tt_matchers.MatchesListwise):
def __init__(self, expected):
super(_VersionsEqual, self).__init__([
@ -665,7 +696,7 @@ class VersionTestCase(unit.TestCase):
link['href'] = port
def test_public_versions(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
resp = client.get('/')
self.assertEqual(300, resp.status_int)
data = jsonutils.loads(resp.body)
@ -682,7 +713,7 @@ class VersionTestCase(unit.TestCase):
self.assertThat(data, _VersionsEqual(expected))
def test_admin_versions(self):
client = unit.TestClient(self.admin_app)
client = TestClient(self.admin_app)
resp = client.get('/')
self.assertEqual(300, resp.status_int)
data = jsonutils.loads(resp.body)
@ -702,7 +733,7 @@ class VersionTestCase(unit.TestCase):
self.config_fixture.config(public_endpoint=None, admin_endpoint=None)
for app in (self.public_app, self.admin_app):
client = unit.TestClient(app)
client = TestClient(app)
resp = client.get('/')
self.assertEqual(300, resp.status_int)
data = jsonutils.loads(resp.body)
@ -718,7 +749,7 @@ class VersionTestCase(unit.TestCase):
self.assertThat(data, _VersionsEqual(expected))
def test_public_version_v2(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
resp = client.get('/v2.0/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -729,7 +760,7 @@ class VersionTestCase(unit.TestCase):
self.assertEqual(expected, data)
def test_admin_version_v2(self):
client = unit.TestClient(self.admin_app)
client = TestClient(self.admin_app)
resp = client.get('/v2.0/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -742,7 +773,7 @@ class VersionTestCase(unit.TestCase):
def test_use_site_url_if_endpoint_unset_v2(self):
self.config_fixture.config(public_endpoint=None, admin_endpoint=None)
for app in (self.public_app, self.admin_app):
client = unit.TestClient(app)
client = TestClient(app)
resp = client.get('/v2.0/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -751,7 +782,7 @@ class VersionTestCase(unit.TestCase):
self.assertEqual(data, expected)
def test_public_version_v3(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
resp = client.get('/v3/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -763,7 +794,7 @@ class VersionTestCase(unit.TestCase):
@utils.wip('waiting on bug #1381961')
def test_admin_version_v3(self):
client = unit.TestClient(self.admin_app)
client = TestClient(self.admin_app)
resp = client.get('/v3/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -776,7 +807,7 @@ class VersionTestCase(unit.TestCase):
def test_use_site_url_if_endpoint_unset_v3(self):
self.config_fixture.config(public_endpoint=None, admin_endpoint=None)
for app in (self.public_app, self.admin_app):
client = unit.TestClient(app)
client = TestClient(app)
resp = client.get('/v3/')
self.assertEqual(200, resp.status_int)
data = jsonutils.loads(resp.body)
@ -786,7 +817,7 @@ class VersionTestCase(unit.TestCase):
@mock.patch.object(controllers, '_VERSIONS', ['v3'])
def test_v2_disabled(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
# request to /v2.0 should fail
resp = client.get('/v2.0/')
self.assertEqual(http_client.NOT_FOUND, resp.status_int)
@ -819,7 +850,7 @@ class VersionTestCase(unit.TestCase):
@mock.patch.object(controllers, '_VERSIONS', ['v2.0'])
def test_v3_disabled(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
# request to /v3 should fail
resp = client.get('/v3/')
self.assertEqual(http_client.NOT_FOUND, resp.status_int)
@ -851,7 +882,7 @@ class VersionTestCase(unit.TestCase):
self.assertEqual(v2_only_response, data)
def _test_json_home(self, path, exp_json_home_data):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
resp = client.get(path, headers={'Accept': 'application/json-home'})
self.assertThat(resp.status, tt_matchers.Equals('200 OK'))
@ -884,7 +915,7 @@ class VersionTestCase(unit.TestCase):
# Accept headers with multiple types and qvalues are handled.
def make_request(accept_types=None):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
headers = None
if accept_types:
headers = {'Accept': accept_types}
@ -970,7 +1001,7 @@ class VersionSingleAppTestCase(unit.TestCase):
else:
return CONF.eventlet_server.public_port
app = self.loadapp('keystone', app_name)
client = unit.TestClient(app)
client = TestClient(app)
resp = client.get('/')
self.assertEqual(300, resp.status_int)
data = jsonutils.loads(resp.body)
@ -1016,7 +1047,7 @@ class VersionInheritEnabledTestCase(unit.TestCase):
# If the request is /v3 and the Accept header is application/json-home
# then the server responds with a JSON Home document.
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
resp = client.get('/v3/', headers={'Accept': 'application/json-home'})
self.assertThat(resp.status, tt_matchers.Equals('200 OK'))
@ -1056,7 +1087,7 @@ class VersionBehindSslTestCase(unit.TestCase):
return expected
def test_versions_without_headers(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
host_name = 'host-%d' % random.randint(10, 30)
host_port = random.randint(10000, 30000)
host = 'http://%s:%s/' % (host_name, host_port)
@ -1067,7 +1098,7 @@ class VersionBehindSslTestCase(unit.TestCase):
self.assertThat(data, _VersionsEqual(expected))
def test_versions_with_header(self):
client = unit.TestClient(self.public_app)
client = TestClient(self.public_app)
host_name = 'host-%d' % random.randint(10, 30)
host_port = random.randint(10000, 30000)
resp = client.get('http://%s:%s/' % (host_name, host_port),