Add network unittests
diff --git a/gstack/controllers/networks.py b/gstack/controllers/networks.py
index df69812..7fba7ab 100644
--- a/gstack/controllers/networks.py
+++ b/gstack/controllers/networks.py
@@ -49,8 +49,7 @@
if securitygroup_list['listsecuritygroupsresponse']:
response = helper.filter_by_name(
- data=securitygroup_list[
- 'listsecuritygroupsresponse']['securitygroup'],
+ data=securitygroup_list['listsecuritygroupsresponse']['securitygroup'],
name=securitygroup
)
return response
@@ -62,6 +61,7 @@
command = 'createSecurityGroup'
if not args:
args = {}
+
cloudstack_response = requester.make_request(
command,
args,
@@ -123,8 +123,7 @@
return populated_response
-@app.route(
- '/compute/v1/projects/<projectid>/global/networks', methods=['GET'])
+@app.route('/compute/v1/projects/<projectid>/global/networks', methods=['GET'])
@authentication.required
def listnetworks(projectid, authorization):
securitygroup_list = _get_networks(
@@ -185,7 +184,7 @@
'error': {
'errors': [{
'code': 'RESOURCE_ALREADY_EXISTS',
- 'message': 'the resource \'projects/\'' + projectid + '/global/networks/' + args['name']
+ 'message': 'The resource \'projects/\'' + projectid + '/global/networks/' + args['name']
}]
}
}
diff --git a/tests/data/valid_describe_instance.json b/tests/data/valid_describe_instance.json
index 8415635..1ba1540 100644
--- a/tests/data/valid_describe_instance.json
+++ b/tests/data/valid_describe_instance.json
@@ -1,6 +1,6 @@
{
"listvirtualmachinesresponse": {
- "count": 2,
+ "count": 1,
"virtualmachine": [
{
"domain": "ROOT",
diff --git a/tests/data/valid_describe_security_group.json b/tests/data/valid_describe_security_group.json
new file mode 100644
index 0000000..7e95b07
--- /dev/null
+++ b/tests/data/valid_describe_security_group.json
@@ -0,0 +1,40 @@
+{
+ "listsecuritygroupsresponse": {
+ "count": 1,
+ "securitygroup": [
+ {
+ "egressrule": [],
+ "account": "example-account",
+ "domainid": "66d69e46-a95b-437b-ac6c-bcaa5331999d",
+ "description": "Default Security Group",
+ "tags": [],
+ "domain": "example-account",
+ "ingressrule": [
+ {
+ "protocol": "tcp",
+ "cidr": "0.0.0.0/0",
+ "startport": 22,
+ "endport": 22,
+ "ruleid": "3d92cc70-8c84-4e8a-9989-6efcd7ff7905"
+ },
+ {
+ "protocol": "icmp",
+ "cidr": "0.0.0.0/0",
+ "ruleid": "2ba7dd7b-13b2-49ae-bf8e-26ffadd32c9e",
+ "icmpcode": 0,
+ "icmptype": 0
+ },
+ {
+ "protocol": "tcp",
+ "cidr": "0.0.0.0/0",
+ "startport": 8080,
+ "endport": 8080,
+ "ruleid": "c4562b3c-d1b0-4844-a771-3c3434e1a5d0"
+ }
+ ],
+ "id": "1f95ee9b-b291-48c1-9492-0eee632677e3",
+ "name": "networkname"
+ }
+ ]
+ }
+}
diff --git a/tests/networks_tests.py b/tests/networks_tests.py
new file mode 100644
index 0000000..2f2f533
--- /dev/null
+++ b/tests/networks_tests.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+import mock
+
+from gstack.helpers import read_file
+from . import GStackAppTestCase
+
+class NetworksTestCase(GStackAppTestCase):
+
+ def test_list_networks(self):
+
+ get = mock.Mock()
+ get.return_value.text = read_file('tests/data/valid_describe_security_groups.json')
+ get.return_value.status_code = 200
+
+ with mock.patch('requests.get', get):
+ headers = {'authorization': 'Bearer ' + str(GStackAppTestCase.access_token)}
+ response = self.get('/compute/v1/projects/exampleproject/global/networks', headers=headers)
+
+ self.assert_ok(response)
+
+ def test_get_network(self):
+
+ get = mock.Mock()
+ get.return_value.text = read_file('tests/data/valid_describe_security_group.json')
+ get.return_value.status_code = 200
+
+ with mock.patch('requests.get', get):
+ headers = {'authorization': 'Bearer ' + str(GStackAppTestCase.access_token)}
+ response = self.get('/compute/v1/projects/exampleproject/global/networks/networkname', headers=headers)
+
+ self.assert_ok(response)
+
+ def test_get_network_network_not_found(self):
+
+ get = mock.Mock()
+ get.return_value.text = read_file('tests/data/empty_describe_security_groups.json')
+ get.return_value.status_code = 200
+
+ with mock.patch('requests.get', get):
+ headers = {'authorization': 'Bearer ' + str(GStackAppTestCase.access_token)}
+ response = self.get('/compute/v1/projects/exampleproject/global/networks/networkname', headers=headers)
+
+ self.assert_not_found(response)
+ assert 'The resource \'/compute/v1/projects/exampleproject/global/networks/networkname\'' \
+ in response.data