diff options
| author | Michael Basnight <mbasnight@gmail.com> | 2013-06-17 23:34:27 -0700 |
|---|---|---|
| committer | Michael Basnight <mbasnight@gmail.com> | 2013-06-21 20:15:23 +0000 |
| commit | 9916c8f2733b683d859770d05dacd2c9c82912d7 (patch) | |
| tree | 084a0d53580cbbd34ed8f28de9302d6c78f7050d /troveclient/tests/test_limits.py | |
| parent | bc90b3e088d3d4b83b5b3de0f9f83d9b6956947d (diff) | |
| download | python-troveclient-0.1.3.tar.gz | |
Rename from reddwarf to trove.0.1.3
Implements Blueprint reddwarf-trove-rename
Change-Id: Ib2d694c7466887ca297bea4250eca17cdc06b7bf
Diffstat (limited to 'troveclient/tests/test_limits.py')
| -rw-r--r-- | troveclient/tests/test_limits.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/troveclient/tests/test_limits.py b/troveclient/tests/test_limits.py new file mode 100644 index 0000000..d40b646 --- /dev/null +++ b/troveclient/tests/test_limits.py @@ -0,0 +1,79 @@ +from testtools import TestCase +from mock import Mock +from troveclient import limits + + +class LimitsTest(TestCase): + """ + This class tests the calling code for the Limits API + """ + + def setUp(self): + super(LimitsTest, self).setUp() + self.limits = limits.Limits(Mock()) + self.limits.api.client = Mock() + + def tearDown(self): + super(LimitsTest, self).tearDown() + + def test_list(self): + resp = Mock() + resp.status = 200 + body = {"limits": + [ + {'maxTotalInstances': 55, + 'verb': 'ABSOLUTE', + 'maxTotalVolumes': 100}, + {'regex': '.*', + 'nextAvailable': '2011-07-21T18:17:06Z', + 'uri': '*', + 'value': 10, + 'verb': 'POST', + 'remaining': 2, 'unit': 'MINUTE'}, + {'regex': '.*', + 'nextAvailable': '2011-07-21T18:17:06Z', + 'uri': '*', + 'value': 10, + 'verb': 'PUT', + 'remaining': 2, + 'unit': 'MINUTE'}, + {'regex': '.*', + 'nextAvailable': '2011-07-21T18:17:06Z', + 'uri': '*', + 'value': 10, + 'verb': 'DELETE', + 'remaining': 2, + 'unit': 'MINUTE'}, + {'regex': '.*', + 'nextAvailable': '2011-07-21T18:17:06Z', + 'uri': '*', + 'value': 10, + 'verb': 'GET', + 'remaining': 2, 'unit': 'MINUTE'}]} + response = (resp, body) + + mock_get = Mock(return_value=response) + self.limits.api.client.get = mock_get + self.assertIsNotNone(self.limits.list()) + mock_get.assert_called_once_with("/limits") + + def test_list_errors(self): + status_list = [400, 401, 403, 404, 408, 409, 413, 500, 501] + for status_code in status_list: + self._check_error_response(status_code) + + def _check_error_response(self, status_code): + RESPONSE_KEY = "limits" + + resp = Mock() + resp.status = status_code + body = {RESPONSE_KEY: { + 'absolute': {}, + 'rate': [ + {'limit': [] + }]}} + response = (resp, body) + + mock_get = Mock(return_value=response) + self.limits.api.client.get = mock_get + self.assertRaises(Exception, self.limits.list) |
