[Kimchi-devel] [PATCHv7 2/8] Add testcase for GET param

Aline Manera alinefm at linux.vnet.ibm.com
Fri Jan 17 18:07:07 UTC 2014


On 01/14/2014 01:47 PM, lvroyce0210 at gmail.com wrote:
> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>
> Add a testcase to test GET param passing to demo how GET param work
> with current model implementation.
>
> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
> ---
>   tests/test_rest.py | 34 ++++++++++++++++++++++++++++++++++
>   1 file changed, 34 insertions(+)
>
> diff --git a/tests/test_rest.py b/tests/test_rest.py
> index 8732781..4d161d9 100644
> --- a/tests/test_rest.py
> +++ b/tests/test_rest.py
> @@ -1132,6 +1132,40 @@ 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):
> +                res = func()
> +                return res
> +            return _get_param_func
> +
> +        global model
> +        old_handler = model.vms_get_list
> +        model.vms_get_list = hack_model(model.vms_get_list)

Why is it needed?

GET /vms?name=test-vm1 will run vms_get_list() which will return all vm 
names

then filter_data() will return only the element with name 'test-vm1'

> +
> +        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):
>       """




More information about the Kimchi-devel mailing list