示例#1
0
 def test_limiter_nothing(self):
     """Test request with no offset or limit."""
     req = webob.Request.blank('/')
     self.assertEqual(self.tiny, common.limited(self.tiny, req))
     self.assertEqual(self.small, common.limited(self.small, req))
     self.assertEqual(self.medium, common.limited(self.medium, req))
     self.assertEqual(self.large[:1000], common.limited(self.large, req))
示例#2
0
 def test_limiter_limit_zero(self):
     """Test limit of zero."""
     req = webob.Request.blank('/?limit=0')
     self.assertEqual(self.tiny, common.limited(self.tiny, req))
     self.assertEqual(self.small, common.limited(self.small, req))
     self.assertEqual(self.medium, common.limited(self.medium, req))
     self.assertEqual(self.large[:1000], common.limited(self.large, req))
示例#3
0
 def test_limiter_offset_medium(self):
     """Test offset key works with a medium sized number."""
     req = webob.Request.blank('/?offset=10')
     self.assertEqual([], common.limited(self.tiny, req))
     self.assertEqual(self.small[10:], common.limited(self.small, req))
     self.assertEqual(self.medium[10:], common.limited(self.medium, req))
     self.assertEqual(self.large[10:1010], common.limited(self.large, req))
示例#4
0
 def test_limiter_offset_zero(self):
     """Test offset key works with 0."""
     req = webob.Request.blank('/?offset=0')
     self.assertEqual(self.tiny, common.limited(self.tiny, req))
     self.assertEqual(self.small, common.limited(self.small, req))
     self.assertEqual(self.medium, common.limited(self.medium, req))
     self.assertEqual(self.large[:1000], common.limited(self.large, req))
示例#5
0
 def test_limiter_offset_over_max(self):
     """Test offset key works with a number over 1000 (max_limit)."""
     req = webob.Request.blank('/?offset=1001')
     self.assertEqual([], common.limited(self.tiny, req))
     self.assertEqual([], common.limited(self.small, req))
     self.assertEqual([], common.limited(self.medium, req))
     self.assertEqual(
         self.large[1001:2001], common.limited(self.large, req))
示例#6
0
 def test_limiter_limit_and_offset(self):
     """Test request with both limit and offset."""
     items = range(2000)
     req = webob.Request.blank('/?offset=1&limit=3')
     self.assertEqual(items[1:4], common.limited(items, req))
     req = webob.Request.blank('/?offset=3&limit=0')
     self.assertEqual(items[3:1003], common.limited(items, req))
     req = webob.Request.blank('/?offset=3&limit=1500')
     self.assertEqual(items[3:1003], common.limited(items, req))
     req = webob.Request.blank('/?offset=3000&limit=10')
     self.assertEqual([], common.limited(items, req))
示例#7
0
 def test_limiter_custom_max_limit(self):
     """Test a max_limit other than 1000."""
     items = range(2000)
     req = webob.Request.blank('/?offset=1&limit=3')
     self.assertEqual(
         items[1:4], common.limited(items, req, max_limit=2000))
     req = webob.Request.blank('/?offset=3&limit=0')
     self.assertEqual(
         items[3:], common.limited(items, req, max_limit=2000))
     req = webob.Request.blank('/?offset=3&limit=2500')
     self.assertEqual(
         items[3:], common.limited(items, req, max_limit=2000))
     req = webob.Request.blank('/?offset=3000&limit=10')
     self.assertEqual([], common.limited(items, req, max_limit=2000))
示例#8
0
文件: zones.py 项目: pombredanne/nova
    def index(self, req):
        """Return all zones in brief"""
        # Ask the ZoneManager in the Scheduler for most recent data,
        # or fall-back to the database ...
        items = api.API().get_zone_list(req.environ['nova.context'])
        if not items:
            items = db.zone_get_all(req.environ['nova.context'])

        items = common.limited(items, req)
        items = [_exclude_keys(item, ['username', 'password'])
                      for item in items]
        return dict(zones=items)
示例#9
0
文件: zones.py 项目: yosh/nova
 def index(self, req):
     """Return all zones in brief"""
     items = db.zone_get_all(req.environ['nova.context'])
     items = common.limited(items, req)
     items = [_scrub_zone(item) for item in items]
     return dict(zones=items)