You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2015/08/05 23:05:57 UTC
libcloud git commit: Adapt onapp tests to the libcloud test framework
Repository: libcloud
Updated Branches:
refs/heads/trunk 733ea2f52 -> b079a012e
Adapt onapp tests to the libcloud test framework
Instead of mocking the response manually the tests use MockHttpTestCase.
Closes #560
Signed-off-by: Tomaz Muraus <to...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/b079a012
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/b079a012
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/b079a012
Branch: refs/heads/trunk
Commit: b079a012ef7c1908969a3c16e9cc6c7bac53562a
Parents: 733ea2f
Author: Tobias Wilken <to...@tooangel.de>
Authored: Wed Aug 5 11:37:47 2015 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Aug 5 23:04:27 2015 +0200
----------------------------------------------------------------------
libcloud/compute/drivers/onapp.py | 1 +
libcloud/test/compute/test_onapp.py | 75 ++++++++++++--------------------
2 files changed, 30 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/b079a012/libcloud/compute/drivers/onapp.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/onapp.py b/libcloud/compute/drivers/onapp.py
index 8fb164c..2b0811e 100644
--- a/libcloud/compute/drivers/onapp.py
+++ b/libcloud/compute/drivers/onapp.py
@@ -301,6 +301,7 @@ class OnAppNodeDriver(NodeDriver):
identifier=node.id)
self.connection.request(action, params=server_params, method="DELETE")
+ return True
def list_nodes(self):
"""
http://git-wip-us.apache.org/repos/asf/libcloud/blob/b079a012/libcloud/test/compute/test_onapp.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_onapp.py b/libcloud/test/compute/test_onapp.py
index d62ec72..08760e5 100644
--- a/libcloud/test/compute/test_onapp.py
+++ b/libcloud/test/compute/test_onapp.py
@@ -1,36 +1,21 @@
import unittest
import sys
-import json
-from mock import call, MagicMock
-
-from libcloud.test.file_fixtures import ComputeFileFixtures
+from libcloud.compute.base import Node
from libcloud.compute.drivers.onapp import OnAppNodeDriver
-from libcloud.test import LibcloudTestCase
+from libcloud.test import MockHttpTestCase, LibcloudTestCase
from libcloud.test.secrets import ONAPP_PARAMS
-from libcloud.compute.base import Node
+from libcloud.test.file_fixtures import ComputeFileFixtures
+from libcloud.utils.py3 import httplib
class OnAppNodeTestCase(LibcloudTestCase):
+ driver_klass = OnAppNodeDriver
+
def setUp(self):
- def _request(*args, **kwargs):
- fixtures = ComputeFileFixtures('onapp')
- response = MagicMock()
- method = kwargs.get('method', "GET")
-
- if method == 'GET' and args[0] == '/virtual_machines.json':
- response.object = json.loads(fixtures.load(
- 'list_nodes.json'))
- if method == 'POST' and args[0] == '/virtual_machines.json':
- response.object = json.loads(fixtures.load('create_node.json'))
- if method == 'DELETE' and args[0] == '/virtual_machines.json':
- response.status = 204
-
- return response
-
- self.connection_mock = MagicMock()
- self.connection_mock.return_value.request.side_effect = _request
- OnAppNodeDriver.connectionCls = self.connection_mock
+ self.driver_klass.connectionCls.conn_classes = \
+ (None, OnAppMockHttp)
+
self.driver = OnAppNodeDriver(*ONAPP_PARAMS)
def test_create_node(self):
@@ -47,20 +32,6 @@ class OnAppNodeTestCase(LibcloudTestCase):
ex_required_ip_address_assignment=0
)
- req_mock = self.connection_mock.return_value.request
- self.assertEqual('/virtual_machines.json', req_mock.call_args[0][0])
- self.assertEqual({'Content-type': 'application/json'},
- req_mock.call_args[1]['headers'])
- self.assertEqual(json.loads(
- '{"virtual_machine": {'
- '"swap_disk_size": 1, "required_ip_address_assignment": 0, '
- '"hostname": "onapp-new-fred", "cpus": 4, "label": '
- '"onapp-new-fred", "primary_disk_size": 100, "memory": 512, '
- '"required_virtual_machine_build": 0, "template_id": '
- '"template_id", "cpu_shares": 4, "rate_limit": null}}'),
- json.loads(req_mock.call_args[1]['data']))
- self.assertEqual('POST', req_mock.call_args[1]['method'])
-
extra = node.extra
self.assertEqual('onapp-new-fred', node.name)
@@ -80,12 +51,8 @@ class OnAppNodeTestCase(LibcloudTestCase):
node = Node('identABC', 'testnode',
['123.123.123.123'], [],
{'state': 'test', 'template_id': 88}, None)
- self.driver.destroy_node(node=node)
- self.assertEqual(call(
- '/virtual_machines/identABC.json',
- params={'destroy_all_backups': 0, 'convert_last_backup': 0},
- method='DELETE'),
- self.connection_mock.return_value.request.call_args)
+ res = self.driver.destroy_node(node=node)
+ self.assertTrue(res)
def test_list_nodes(self):
nodes = self.driver.list_nodes()
@@ -103,8 +70,24 @@ class OnAppNodeTestCase(LibcloudTestCase):
self.assertEqual(1, len(private_ips))
self.assertEqual('192.168.15.72', private_ips[0])
- self.assertEqual(call('/virtual_machines.json'),
- self.connection_mock.return_value.request.call_args)
+
+class OnAppMockHttp(MockHttpTestCase):
+ fixtures = ComputeFileFixtures('onapp')
+
+ def _virtual_machines_json(self, method, url, body, headers):
+ if method == 'GET':
+ body = self.fixtures.load('list_nodes.json')
+ else:
+ body = self.fixtures.load('create_node.json')
+ return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+ def _virtual_machines_identABC_json(self, method, url, body, headers):
+ return (
+ httplib.NO_CONTENT,
+ '',
+ {},
+ httplib.responses[httplib.NO_CONTENT]
+ )
if __name__ == '__main__':