Reviewed-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
On 12/30/2013 12:17 AM, lvroyce(a)linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
Add a testcase to test GET param passing.
Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
---
tests/test_rest.py | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/tests/test_rest.py b/tests/test_rest.py
index f597796..42573fc 100644
--- a/tests/test_rest.py
+++ b/tests/test_rest.py
@@ -1056,6 +1056,43 @@ class RestTests(unittest.TestCase):
self.assertIn('net_recv_rate', stats)
self.assertIn('net_sent_rate', stats)
+ def test_get_param(self):
+ def hack_model(func):
+ def _get_param_func(*args, **kwargs):
+ key = kwargs.pop('name', None)
+ res = func(**kwargs)
+ if key and key in res:
+ res = [key]
+ return res
+ return _get_param_func
+
+ global model
+ old_handler = model.vms_get_list
+ model.vms_get_list = hack_model(model.vms_get_list)
+
+ req = json.dumps({'name': 'test', 'cdrom':
'/nonexistent.iso'})
+ self.request('/templates', req, 'POST')
+
+ # Create a VM
+ req = json.dumps({'name': 'test-vm1', 'template':
'/templates/test'})
+ resp = self.request('/vms', req, 'POST')
+ self.assertEquals(201, resp.status)
+ req = json.dumps({'name': 'test-vm2', 'template':
'/templates/test'})
+ resp = self.request('/vms', req, 'POST')
+ self.assertEquals(201, resp.status)
+
+ resp = request(host, port, '/vms')
+ self.assertEquals(200, resp.status)
+ res = json.loads(resp.read())
+ self.assertEquals(2, len(res))
+
+ resp = request(host, port, '/vms?name=test-vm1')
+ self.assertEquals(200, resp.status)
+ res = json.loads(resp.read())
+ self.assertEquals(1, len(res))
+ self.assertEquals('test-vm1', res[0]['name'])
+
+ model.vms_get_list = old_handler
class HttpsRestTests(RestTests):
"""