92
92
self.assertEqual(middleware.limiter.__class__.__name__, "Limiter")
93
93
middleware = RateLimitingMiddleware(simple_wsgi, service_host='foobar')
94
94
self.assertEqual(middleware.limiter.__class__.__name__, "WSGIAppProxy")
97
class LimiterTest(unittest.TestCase):
99
def test_limiter(self):
101
req = Request.blank('/')
102
self.assertEqual(limited(items, req), items[:1000])
103
req = Request.blank('/?offset=0')
104
self.assertEqual(limited(items, req), items[:1000])
105
req = Request.blank('/?offset=3')
106
self.assertEqual(limited(items, req), items[3:1003])
107
req = Request.blank('/?offset=2005')
108
self.assertEqual(limited(items, req), [])
109
req = Request.blank('/?limit=10')
110
self.assertEqual(limited(items, req), items[:10])
111
req = Request.blank('/?limit=0')
112
self.assertEqual(limited(items, req), items[:1000])
113
req = Request.blank('/?limit=3000')
114
self.assertEqual(limited(items, req), items[:1000])
115
req = Request.blank('/?offset=1&limit=3')
116
self.assertEqual(limited(items, req), items[1:4])
117
req = Request.blank('/?offset=3&limit=0')
118
self.assertEqual(limited(items, req), items[3:1003])
119
req = Request.blank('/?offset=3&limit=1500')
120
self.assertEqual(limited(items, req), items[3:1003])
121
req = Request.blank('/?offset=3000&limit=10')
122
self.assertEqual(limited(items, req), [])