root / snf-cyclades-app / synnefo / api / tests / networks.py @ 0baa1e3d
History | View | Annotate | Download (4 kB)
1 |
from snf_django.utils.testing import BaseAPITest |
---|---|
2 |
from django.utils import simplejson as json |
3 |
from synnefo.cyclades_settings import cyclades_services |
4 |
from synnefo.lib.services import get_service_path |
5 |
from synnefo.lib import join_urls |
6 |
import json |
7 |
import synnefo.db.models_factory as dbmf |
8 |
|
9 |
|
10 |
COMPUTE_URL = get_service_path(cyclades_services, 'compute',
|
11 |
version='v2.0')
|
12 |
NETWORKS_URL = join_urls(COMPUTE_URL, "networks/")
|
13 |
|
14 |
|
15 |
class NetworkTest(BaseAPITest): |
16 |
|
17 |
def test_list_networks(self): |
18 |
response = self.get(NETWORKS_URL)
|
19 |
self.assertSuccess(response)
|
20 |
networks = json.loads(response.content) |
21 |
self.assertEqual(networks, {"networks": []}) |
22 |
|
23 |
def test_create_network(self): |
24 |
request = { |
25 |
"network": {
|
26 |
"name": "sample_network", |
27 |
"type": "MAC_FILTERED" |
28 |
} |
29 |
} |
30 |
response = self.post(NETWORKS_URL, params=json.dumps(request))
|
31 |
code = response.status_code |
32 |
self.assertEqual(code, 201) |
33 |
|
34 |
def test_get_unfound_network(self): |
35 |
url = join_urls(NETWORKS_URL, "123")
|
36 |
response = self.get(url)
|
37 |
self.assertItemNotFound(response)
|
38 |
|
39 |
def test_get_network(self): |
40 |
test_net = dbmf.NetworkFactory.create() |
41 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
42 |
response = self.get(url, user=test_net.userid)
|
43 |
print response.content
|
44 |
# validate response
|
45 |
res = json.loads(response.content) |
46 |
net = res['network']
|
47 |
keys = net.keys() |
48 |
must_send = set(["status", "subnets", "name", "admin_state_up", |
49 |
"tenant_id", "id"]) |
50 |
self.assertEqual(set(keys).issuperset(must_send), True) |
51 |
self.assertEqual(response.status_code, 200) |
52 |
|
53 |
def test_get_deleted_network(self): |
54 |
test_net = dbmf.NetworkFactory.create() |
55 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
56 |
self.delete(url, user=test_net.userid)
|
57 |
response = self.get(url, user=test_net.userid)
|
58 |
self.assertEqual(response.status_code, 400) |
59 |
|
60 |
def test_delete_unfound_network(self): |
61 |
url = join_urls(NETWORKS_URL, "123")
|
62 |
response = self.delete(url)
|
63 |
self.assertItemNotFound(response)
|
64 |
|
65 |
def test_delete_network(self): |
66 |
test_net = dbmf.NetworkFactory.create() |
67 |
subnet = dbmf.IPv4SubnetFactory.create(network=test_net) |
68 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
69 |
response = self.delete(url, user=test_net.userid)
|
70 |
self.assertEqual(response.status_code, 204) |
71 |
|
72 |
def test_delete_network_in_use(self): |
73 |
test_net = dbmf.NetworkFactory.create() |
74 |
test_iface = dbmf.NetworkInterfaceFactory.create(network=test_net) |
75 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
76 |
response = self.delete(url, user=test_net.userid)
|
77 |
self.assertEqual(response.status_code, 409) |
78 |
|
79 |
def test_put_unfound_network(self): |
80 |
url = join_urls(NETWORKS_URL, "123")
|
81 |
response = self.delete(url)
|
82 |
self.assertItemNotFound(response)
|
83 |
|
84 |
def test_put_network(self): |
85 |
test_net = dbmf.NetworkFactory.create() |
86 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
87 |
request = { |
88 |
"network": {
|
89 |
"name": "new_name"} |
90 |
} |
91 |
response = self.put(url, params=json.dumps(request),
|
92 |
user=test_net.userid) |
93 |
self.assertEqual(response.status_code, 200) |
94 |
|
95 |
def test_put_network_wrong_data(self): |
96 |
test_net = dbmf.NetworkFactory.create() |
97 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
98 |
request = { |
99 |
"network": {
|
100 |
"wrong_field": "new_name"} |
101 |
} |
102 |
response = self.put(url, params=json.dumps(request),
|
103 |
user=test_net.userid) |
104 |
self.assertEqual(response.status_code, 400) |
105 |
|
106 |
def test_put_no_data(self): |
107 |
test_net = dbmf.NetworkFactory.create() |
108 |
url = join_urls(NETWORKS_URL, str(test_net.id))
|
109 |
response = self.put(url, params="", user=test_net.userid) |
110 |
self.assertEqual(response.status_code, 400) |