Skip to content
Snippets Groups Projects
Commit 3e294900 authored by ale's avatar ale
Browse files

add a test of bandwidth limiting for small requests that fall within the burst threshold

parent 9a946191
Branches
No related tags found
No related merge requests found
......@@ -23,13 +23,17 @@ class TokenBucketTest(unittest.TestCase):
self.assertAlmostEquals(1, tb.consume(512), 3)
self.assertAlmostEquals(1, tb.consume(512), 3)
def test_token_bucket_overburst(self):
tb = throttle.TokenBucket(1024, 512)
# A very large request will wait.
self.assertEquals(18, tb.consume(10240))
class HttpSinkHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_POST(self):
clen = int(self.headers.get('Content-Length', 0))
data = self.rfile.read(clen)
print 'received %d bytes on %s' % (len(data), self.path)
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
......@@ -89,8 +93,8 @@ class ThrottledHttpTest(unittest.TestCase):
throttle.set_rate_limit(10)
opener = urllib2.build_opener(throttle.ThrottledHTTPHandler)
testdata = "x" * (5 * 1024)
n_reqs = 10
testdata = "x" * (1024)
n_reqs = 50
start = time.time()
for i in xrange(n_reqs):
......@@ -105,7 +109,7 @@ class ThrottledHttpTest(unittest.TestCase):
elapsed = end - start
print >>sys.stderr, 'elapsed: %g secs' % elapsed
self.assertTrue(elapsed > 4.5 and elapsed < 5.5,
self.assertTrue(elapsed > 4.5 and elapsed < 6.5,
'elapsed time out of range: %g' % elapsed)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment