Revision 9115d567 snf-cyclades-app/synnefo/api/test/floating_ips.py
b/snf-cyclades-app/synnefo/api/test/floating_ips.py | ||
---|---|---|
40 | 40 |
NetworkInterfaceFactory, |
41 | 41 |
BackendNetworkFactory) |
42 | 42 |
from mock import patch, Mock |
43 |
from functools import partial |
|
43 | 44 |
|
44 | 45 |
|
45 | 46 |
URL = "/api/v1.1/os-floating-ips" |
46 | 47 |
|
48 |
FloatingIPPoolFactory = partial(NetworkFactory, public=True, deleted=False, |
|
49 |
floating_ip_pool=True) |
|
50 |
|
|
47 | 51 |
|
48 | 52 |
class FloatingIPAPITest(BaseAPITest): |
49 | 53 |
def test_no_floating_ip(self): |
... | ... | |
87 | 91 |
self.assertItemNotFound(response) |
88 | 92 |
|
89 | 93 |
def test_reserve(self): |
90 |
net = NetworkFactory(userid="test_user", subnet="192.168.2.0/24", |
|
91 |
gateway=None, public=True) |
|
94 |
net = FloatingIPPoolFactory(userid="test_user", |
|
95 |
subnet="192.168.2.0/24", |
|
96 |
gateway=None) |
|
92 | 97 |
request = {'pool': net.id} |
93 | 98 |
with mocked_quotaholder(): |
94 | 99 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
... | ... | |
107 | 112 |
response = self.post(URL, "test_user", json.dumps({}), "json") |
108 | 113 |
self.assertFault(response, 413, "overLimit") |
109 | 114 |
# Full network |
110 |
net = NetworkFactory(userid="test_user", subnet="192.168.2.0/32", |
|
111 |
gateway=None, public=True) |
|
115 |
FloatingIPPoolFactory(userid="test_user", |
|
116 |
subnet="192.168.2.0/32", |
|
117 |
gateway=None) |
|
112 | 118 |
with mocked_quotaholder(): |
113 | 119 |
response = self.post(URL, "test_user", json.dumps({}), "json") |
114 | 120 |
self.assertFault(response, 413, "overLimit") |
115 | 121 |
# Success |
116 |
net2 = NetworkFactory(userid="test_user", subnet="192.168.2.0/24", |
|
117 |
gateway=None, public=True) |
|
122 |
net2 = FloatingIPPoolFactory(userid="test_user", |
|
123 |
subnet="192.168.2.0/24", |
|
124 |
gateway=None) |
|
118 | 125 |
with mocked_quotaholder(): |
119 | 126 |
response = self.post(URL, "test_user", json.dumps({}), "json") |
127 |
self.assertSuccess(response) |
|
120 | 128 |
self.assertEqual(json.loads(response.content)["floating_ip"], |
121 | 129 |
{"instance_id": None, "ip": "192.168.2.1", |
122 | 130 |
"fixed_ip": None, "id": "1", "pool": str(net2.id)}) |
123 | 131 |
|
124 | 132 |
def test_reserve_full(self): |
125 |
net = NetworkFactory(userid="test_user", subnet="192.168.2.0/32",
|
|
126 |
gateway=None, public=True)
|
|
133 |
net = FloatingIPPoolFactory(userid="test_user",
|
|
134 |
subnet="192.168.2.0/32")
|
|
127 | 135 |
request = {'pool': net.id} |
128 | 136 |
with mocked_quotaholder(): |
129 | 137 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
130 | 138 |
self.assertEqual(response.status_code, 413) |
131 | 139 |
|
132 | 140 |
def test_reserve_with_address(self): |
133 |
net = NetworkFactory(userid="test_user", subnet="192.168.2.0/24",
|
|
134 |
gateway=None, public=True)
|
|
141 |
net = FloatingIPPoolFactory(userid="test_user",
|
|
142 |
subnet="192.168.2.0/24")
|
|
135 | 143 |
request = {'pool': net.id, "address": "192.168.2.10"} |
136 | 144 |
with mocked_quotaholder(): |
137 | 145 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
... | ... | |
233 | 241 |
self.assertEqual(json.loads(response.content)["floating_ip_pools"], []) |
234 | 242 |
|
235 | 243 |
def test_list_pools(self): |
236 |
net = NetworkFactory(public=True, deleted=False)
|
|
244 |
net = FloatingIPPoolFactory()
|
|
237 | 245 |
NetworkFactory(public=True, deleted=True) |
238 | 246 |
NetworkFactory(public=False, deleted=False) |
247 |
NetworkFactory(public=True, deleted=False) |
|
239 | 248 |
response = self.get(POOLS_URL) |
240 | 249 |
self.assertSuccess(response) |
241 | 250 |
self.assertEqual(json.loads(response.content)["floating_ip_pools"], |
Also available in: Unified diff