|
17 | 17 | from wsme.rest import json as wsme_json
|
18 | 18 | from wsme import types as wsme_types
|
19 | 19 |
|
| 20 | +from octavia.api.common import types |
| 21 | +from octavia.api.v2.types import health_monitor as health_monitor_type |
| 22 | +from octavia.api.v2.types import member as member_type |
20 | 23 | from octavia.api.v2.types import pool as pool_type
|
21 | 24 | from octavia.common import constants
|
| 25 | +from octavia.common import data_models |
22 | 26 | from octavia.tests.unit.api.common import base
|
23 | 27 |
|
24 | 28 |
|
@@ -224,3 +228,70 @@ def test_invalid_app_cookie_name(self):
|
224 | 228 | body = {"cookie_name": "cookie\nmonster"}
|
225 | 229 | self.assertRaises(exc.InvalidInput, wsme_json.fromjson, self._type,
|
226 | 230 | body)
|
| 231 | + |
| 232 | + |
| 233 | +class TestPoolResponse(base.BaseTypesTest): |
| 234 | + |
| 235 | + _type = pool_type.PoolResponse |
| 236 | + |
| 237 | + def test_pool_response_with_health_monitor(self): |
| 238 | + health_monitor_id = uuidutils.generate_uuid() |
| 239 | + health_monitor_model = data_models.HealthMonitor(id=health_monitor_id) |
| 240 | + pool_model = data_models.Pool(health_monitor=health_monitor_model) |
| 241 | + pool = self._type.from_data_model(data_model=pool_model) |
| 242 | + self.assertEqual(pool.healthmonitor_id, health_monitor_id) |
| 243 | + |
| 244 | + def test_pool_response_with_members(self): |
| 245 | + member_id = uuidutils.generate_uuid() |
| 246 | + members = [data_models.Member(id=member_id)] |
| 247 | + pool_model = data_models.Pool(members=members) |
| 248 | + pool = self._type.from_data_model(data_model=pool_model) |
| 249 | + self.assertIsInstance(pool.members[0], types.IdOnlyType) |
| 250 | + self.assertEqual(pool.members[0].id, member_id) |
| 251 | + |
| 252 | + def test_pool_response_with_load_balancer(self): |
| 253 | + load_balancer_id = uuidutils.generate_uuid() |
| 254 | + load_balancer = data_models.LoadBalancer(id=load_balancer_id) |
| 255 | + pool_model = data_models.Pool(load_balancer=load_balancer) |
| 256 | + pool = self._type.from_data_model(data_model=pool_model) |
| 257 | + self.assertIsInstance(pool.loadbalancers[0], types.IdOnlyType) |
| 258 | + self.assertEqual(pool.loadbalancers[0].id, load_balancer_id) |
| 259 | + |
| 260 | + def test_pool_response_with_session_persistence(self): |
| 261 | + session_persistence = data_models.SessionPersistence( |
| 262 | + cookie_name="test" |
| 263 | + ) |
| 264 | + pool_model = data_models.Pool(session_persistence=session_persistence) |
| 265 | + pool = self._type.from_data_model(data_model=pool_model) |
| 266 | + self.assertEqual(pool.session_persistence.cookie_name, "test") |
| 267 | + |
| 268 | + def test_pool_response_without_children(self): |
| 269 | + pool = self._type.from_data_model(data_model=data_models.Pool()) |
| 270 | + self.assertEqual(len(pool.loadbalancers), 0) |
| 271 | + self.assertIsNone(pool.session_persistence) |
| 272 | + self.assertEqual(len(pool.members), 0) |
| 273 | + self.assertEqual(len(pool.listeners), 0) |
| 274 | + self.assertEqual(pool.healthmonitor_id, wsme_types.Unset) |
| 275 | + |
| 276 | + |
| 277 | +class TestPoolFullResponse(base.BaseTypesTest): |
| 278 | + |
| 279 | + _type = pool_type.PoolFullResponse |
| 280 | + |
| 281 | + def test_pool_full_response_with_health_monitor(self): |
| 282 | + health_monitor_model = data_models.HealthMonitor() |
| 283 | + pool_model = data_models.Pool(health_monitor=health_monitor_model) |
| 284 | + pool = self._type.from_data_model(data_model=pool_model) |
| 285 | + self.assertIsInstance( |
| 286 | + pool.healthmonitor, health_monitor_type.HealthMonitorFullResponse |
| 287 | + ) |
| 288 | + |
| 289 | + def test_pool_full_response_with_members(self): |
| 290 | + members = [data_models.Member()] |
| 291 | + pool_model = data_models.Pool(members=members) |
| 292 | + pool = self._type.from_data_model(data_model=pool_model) |
| 293 | + self.assertIsInstance(pool.members[0], member_type.MemberFullResponse) |
| 294 | + |
| 295 | + def test_pool_full_response_without_children(self): |
| 296 | + pool = self._type.from_data_model(data_model=data_models.Pool()) |
| 297 | + self.assertIsNone(pool.healthmonitor) |
0 commit comments