summaryrefslogtreecommitdiff
path: root/troveclient/tests/test_limits.py
diff options
context:
space:
mode:
authorMichael Basnight <mbasnight@gmail.com>2013-06-17 23:34:27 -0700
committerMichael Basnight <mbasnight@gmail.com>2013-06-21 20:15:23 +0000
commit9916c8f2733b683d859770d05dacd2c9c82912d7 (patch)
tree084a0d53580cbbd34ed8f28de9302d6c78f7050d /troveclient/tests/test_limits.py
parentbc90b3e088d3d4b83b5b3de0f9f83d9b6956947d (diff)
downloadpython-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.py79
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)