~ubuntu-branches/ubuntu/utopic/cinder/utopic

« back to all changes in this revision

Viewing changes to cinder/tests/api/v1/test_limits.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, James Page, Adam Gandelman, Chuck Short
  • Date: 2013-09-08 21:09:46 UTC
  • mfrom: (1.1.18)
  • Revision ID: package-import@ubuntu.com-20130908210946-3dbzq1jy5uji4wad
Tags: 1:2013.2~b3-0ubuntu1
[ James Page ]
* d/control: Switch ceph-common -> python-ceph inline with upstream
  refactoring of Ceph RBD driver, move to Suggests of python-cinder.
  (LP: #1190791). 

[ Adam Gandelman ]
* debian/patches/avoid_paramiko_vers_depends.patch: Dropped, no longer
  required.
* Add minimum requirement python-greenlet (>= 0.3.2).
* Add minimum requirement python-eventlet (>= 0.12.0).
* Add minimum requirement python-paramiko (>= 1.8).

[ Chuck Short ]
* New upstream release.
* debian/patches/skip-sqlachemy-failures.patch: Skip testfailures
  with sqlalchemy 0.8 until they are fixed upstream.
* debian/control: Add python-babel to build-depends.
* debian/control: Add python-novaclient to build-depends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
270
270
        response = request.get_response(self.app)
271
271
        self.assertEqual(response.status_int, 413)
272
272
 
273
 
        self.assertTrue('Retry-After' in response.headers)
 
273
        self.assertIn('Retry-After', response.headers)
274
274
        retry_after = int(response.headers['Retry-After'])
275
275
        self.assertAlmostEqual(retry_after, 60, 1)
276
276
 
406
406
    def setUp(self):
407
407
        """Run before each test."""
408
408
        super(LimiterTest, self).setUp()
409
 
        userlimits = {'user:user3': ''}
 
409
        userlimits = {'limits.user3': '',
 
410
                      'limits.user0': '(get, *, .*, 4, minute);'
 
411
                                      '(put, *, .*, 2, minute)'}
410
412
        self.limiter = limits.Limiter(TEST_LIMITS, **userlimits)
411
413
 
412
414
    def _check(self, num, verb, url, username=None):
463
465
        """
464
466
        expected = [None] * 11
465
467
        results = list(self._check(11, "GET", "/anything"))
 
468
        self.assertEqual(expected, results)
466
469
 
 
470
        expected = [None] * 4 + [15.0]
 
471
        results = list(self._check(5, "GET", "/foo", "user0"))
467
472
        self.assertEqual(expected, results)
468
473
 
469
474
    def test_delay_PUT_volumes(self):
512
517
        results = list(self._check(10, "PUT", "/anything"))
513
518
        self.assertEqual(expected, results)
514
519
 
 
520
        expected = [None] * 2 + [30.0] * 8
 
521
        results = list(self._check(10, "PUT", "/anything", "user0"))
 
522
        self.assertEqual(expected, results)
 
523
 
515
524
    def test_user_limit(self):
516
525
        """
517
526
        Test user-specific limits.
518
527
        """
519
528
        self.assertEqual(self.limiter.levels['user3'], [])
 
529
        self.assertEqual(len(self.limiter.levels['user0']), 2)
520
530
 
521
531
    def test_multiple_users(self):
522
532
        """
523
533
        Tests involving multiple users.
524
534
        """
 
535
 
 
536
        # User0
 
537
        expected = [None] * 2 + [30.0] * 8
 
538
        results = list(self._check(10, "PUT", "/anything", "user0"))
 
539
        self.assertEqual(expected, results)
 
540
 
525
541
        # User1
526
542
        expected = [None] * 10 + [6.0] * 10
527
543
        results = list(self._check(20, "PUT", "/anything", "user1"))
551
567
        results = list(self._check(5, "PUT", "/anything", "user2"))
552
568
        self.assertEqual(expected, results)
553
569
 
 
570
        # User0 again
 
571
        expected = [28.0]
 
572
        results = list(self._check(1, "PUT", "/anything", "user0"))
 
573
        self.assertEqual(expected, results)
 
574
 
 
575
        self.time += 28.0
 
576
 
 
577
        expected = [None, 30.0]
 
578
        results = list(self._check(2, "PUT", "/anything", "user0"))
 
579
        self.assertEqual(expected, results)
 
580
 
554
581
 
555
582
class WsgiLimiterTest(BaseLimitTestSuite):
556
583
    """