Пример #1
0
 def _populate_limits_diff_regex(self, request):
     """Put limit info into a request."""
     _limits = [
         limits.Limit("GET", "*", ".*", 10, 60).display(),
         limits.Limit("GET", "*", "*.*", 10, 60).display(),
     ]
     request.environ["engine.limits"] = _limits
     return request
Пример #2
0
 def _populate_limits(self, request):
     """Put limit info into a request."""
     _limits = [
         limits.Limit("GET", "*", ".*", 10, 60).display(),
         limits.Limit("POST", "*", ".*", 5, 60 * 60).display(),
         limits.Limit("GET", "changes-since*", "changes-since", 5,
                      60).display(),
     ]
     request.environ["engine.limits"] = _limits
     return request
Пример #3
0
 def test_GET_no_delay(self):
     """Test a limit handles 1 GET per second."""
     limit = limits.Limit("GET", "*", ".*", 1, 1)
     delay = limit("GET", "/anything")
     self.assertEqual(None, delay)
     self.assertEqual(0, limit.next_request)
     self.assertEqual(0, limit.last_request)
Пример #4
0
    def test_GET_delay(self):
        """Test two calls to 1 GET per second limit."""
        limit = limits.Limit("GET", "*", ".*", 1, 1)
        delay = limit("GET", "/anything")
        self.assertEqual(None, delay)

        delay = limit("GET", "/anything")
        self.assertEqual(1, delay)
        self.assertEqual(1, limit.next_request)
        self.assertEqual(0, limit.last_request)

        self.time += 4

        delay = limit("GET", "/anything")
        self.assertEqual(None, delay)
        self.assertEqual(4, limit.next_request)
        self.assertEqual(4, limit.last_request)
Пример #5
0
import unittest
from xml.dom import minidom

from lxml import etree
import stubout
import webob

from engine.api.x7.v2 import limits
from engine.api.x7.v2 import views
from engine.api.x7 import wsgi
from engine.api.x7 import xmlutil
import engine.context
from engine import test

TEST_LIMITS = [
    limits.Limit("GET", "/delayed", "^/delayed", 1, limits.PER_MINUTE),
    limits.Limit("POST", "*", ".*", 7, limits.PER_MINUTE),
    limits.Limit("POST", "/servers", "^/servers", 3, limits.PER_MINUTE),
    limits.Limit("PUT", "*", "", 10, limits.PER_MINUTE),
    limits.Limit("PUT", "/servers", "^/servers", 5, limits.PER_MINUTE),
]
NS = {
    'atom': 'http://www.w3.org/2005/Atom',
    'ns': 'http://docs.x7.org/compute/api/v1.1'
}


class BaseLimitTestSuite(unittest.TestCase):
    """Base test suite which provides relevant stubs and time abstraction."""
    def setUp(self):
        """Run before each test."""