~ewanmellor/nova/lp653651

« back to all changes in this revision

Viewing changes to nova/tests/api/rackspace/__init__.py

  • Committer: Tarmac
  • Author(s): Michael Gundlach
  • Date: 2010-09-29 16:48:21 UTC
  • mfrom: (306.1.2 rsapi-pagination)
  • Revision ID: hudson@openstack.org-20100929164821-ubz2p18vh3kutzq4
Support the pagination interface in RS API -- the &offset and &limit parameters are now recognized.

This implementation is stupid (it just slices the full list at the last second), so in Bexar we should do this right.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
import unittest
19
19
 
 
20
from nova.api.rackspace import limited
20
21
from nova.api.rackspace import RateLimitingMiddleware
21
22
from nova.tests.api.test_helper import *
22
23
from webob import Request
77
78
        self.assertEqual(middleware.limiter.__class__.__name__, "Limiter")
78
79
        middleware = RateLimitingMiddleware(APIStub(), service_host='foobar')
79
80
        self.assertEqual(middleware.limiter.__class__.__name__, "WSGIAppProxy")
 
81
 
 
82
 
 
83
class LimiterTest(unittest.TestCase):
 
84
 
 
85
    def testLimiter(self):
 
86
        items = range(2000)
 
87
        req = Request.blank('/')
 
88
        self.assertEqual(limited(items, req), items[ :1000])
 
89
        req = Request.blank('/?offset=0')
 
90
        self.assertEqual(limited(items, req), items[ :1000])
 
91
        req = Request.blank('/?offset=3')
 
92
        self.assertEqual(limited(items, req), items[3:1003])
 
93
        req = Request.blank('/?offset=2005')
 
94
        self.assertEqual(limited(items, req), [])
 
95
        req = Request.blank('/?limit=10')
 
96
        self.assertEqual(limited(items, req), items[ :10])
 
97
        req = Request.blank('/?limit=0')
 
98
        self.assertEqual(limited(items, req), items[ :1000])
 
99
        req = Request.blank('/?limit=3000')
 
100
        self.assertEqual(limited(items, req), items[ :1000])
 
101
        req = Request.blank('/?offset=1&limit=3')
 
102
        self.assertEqual(limited(items, req), items[1:4])
 
103
        req = Request.blank('/?offset=3&limit=0')
 
104
        self.assertEqual(limited(items, req), items[3:1003])
 
105
        req = Request.blank('/?offset=3&limit=1500')
 
106
        self.assertEqual(limited(items, req), items[3:1003])
 
107
        req = Request.blank('/?offset=3000&limit=10')
 
108
        self.assertEqual(limited(items, req), [])