summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2011-10-13 15:47:33 +0000
committerGerrit Code Review <review@openstack.org>2011-10-13 15:47:33 +0000
commitbc16182f5cfd34738c3c70e151bcd4f4ea52779d (patch)
tree19b5df2671d6d6a1bd260dcaf01c5c5de759717c
parent4eb6fd95f7dc989906d2632a673e7e4c8a47ee1c (diff)
parent51495a46eced3182ed735487f0f018da12f6bc1c (diff)
downloadnova-bc16182f5cfd34738c3c70e151bcd4f4ea52779d.tar.gz
nova-bc16182f5cfd34738c3c70e151bcd4f4ea52779d.tar.xz
nova-bc16182f5cfd34738c3c70e151bcd4f4ea52779d.zip
Merge "Remove RateLimitingMiddlewareTest"
-rw-r--r--nova/tests/api/openstack/__init__.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/nova/tests/api/openstack/__init__.py b/nova/tests/api/openstack/__init__.py
index 7d44489a1..00fcfbb00 100644
--- a/nova/tests/api/openstack/__init__.py
+++ b/nova/tests/api/openstack/__init__.py
@@ -14,82 +14,3 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-
-# NOTE(vish): this forces the fixtures from tests/__init.py:setup() to work
-from nova.tests import *
-
-import webob.dec
-from nova import test
-
-from nova import context
-from nova.api.openstack.limits import RateLimitingMiddleware
-from nova.api.openstack.common import limited
-from nova.tests.api.openstack import fakes
-from webob import Request
-
-
-@webob.dec.wsgify
-def simple_wsgi(req):
- return ""
-
-
-class RateLimitingMiddlewareTest(test.TestCase):
-
- def test_get_action_name(self):
- middleware = RateLimitingMiddleware(simple_wsgi)
-
- def verify(method, url, action_name):
- req = Request.blank(url)
- req.method = method
- action = middleware.get_action_name(req)
- self.assertEqual(action, action_name)
-
- verify('PUT', '/fake/servers/4', 'PUT')
- verify('DELETE', '/fake/servers/4', 'DELETE')
- verify('POST', '/fake/images/4', 'POST')
- verify('POST', '/fake/servers/4', 'POST servers')
- verify('GET', '/fake/foo?a=4&changes-since=never&b=5',
- 'GET changes-since')
- verify('GET', '/fake/foo?a=4&monkeys-since=never&b=5', None)
- verify('GET', '/fake/servers/4', None)
- verify('HEAD', '/fake/servers/4', None)
-
- def exhaust(self, middleware, method, url, username, times):
- req = Request.blank(url, dict(REQUEST_METHOD=method),
- headers={'X-Auth-User': username})
- req.environ['nova.context'] = context.RequestContext(username,
- username)
- for i in range(times):
- resp = req.get_response(middleware)
- self.assertEqual(resp.status_int, 200)
- resp = req.get_response(middleware)
- self.assertEqual(resp.status_int, 413)
- self.assertTrue('Retry-After' in resp.headers)
-
- def test_single_action(self):
- middleware = RateLimitingMiddleware(simple_wsgi)
- self.exhaust(middleware, 'DELETE', '/fake/servers/4', 'usr1', 100)
- self.exhaust(middleware, 'DELETE', '/fake/servers/4', 'usr2', 100)
-
- def test_POST_servers_action_implies_POST_action(self):
- middleware = RateLimitingMiddleware(simple_wsgi)
- self.exhaust(middleware, 'POST', '/fake/servers/4', 'usr1', 10)
- self.exhaust(middleware, 'POST', '/fake/images/4', 'usr2', 10)
- self.assertTrue(set(middleware.limiter._levels) == \
- set(['usr1:POST', 'usr1:POST servers', 'usr2:POST']))
-
- def test_POST_servers_action_correctly_ratelimited(self):
- middleware = RateLimitingMiddleware(simple_wsgi)
- # Use up all of our "POST" allowance for the minute, 5 times
- for i in range(5):
- self.exhaust(middleware, 'POST', '/fake/servers/4', 'usr1', 10)
- # Reset the 'POST' action counter.
- del middleware.limiter._levels['usr1:POST']
- # All 50 daily "POST servers" actions should be all used up
- self.exhaust(middleware, 'POST', '/fake/servers/4', 'usr1', 0)
-
- def test_proxy_ctor_works(self):
- middleware = RateLimitingMiddleware(simple_wsgi)
- self.assertEqual(middleware.limiter.__class__.__name__, "Limiter")
- middleware = RateLimitingMiddleware(simple_wsgi, service_host='foobar')
- self.assertEqual(middleware.limiter.__class__.__name__, "WSGIAppProxy")