|
2 | 2 |
|
3 | 3 | import datetime |
4 | 4 | from datetime import timezone |
| 5 | +from unittest import mock |
5 | 6 |
|
6 | 7 | import pytest |
7 | 8 |
|
8 | 9 | from hcloud.load_balancers import ( |
| 10 | + BoundLoadBalancer, |
9 | 11 | IPv4Address, |
10 | 12 | IPv6Network, |
11 | 13 | LoadBalancer, |
|
21 | 23 | PrivateNet, |
22 | 24 | PublicNetwork, |
23 | 25 | ) |
| 26 | +from hcloud.networks import Network |
24 | 27 |
|
25 | 28 |
|
26 | 29 | @pytest.mark.parametrize( |
@@ -56,3 +59,33 @@ class TestLoadBalancers: |
56 | 59 | def test_created_is_datetime(self): |
57 | 60 | lb = LoadBalancer(id=1, created="2016-01-30T23:50+00:00") |
58 | 61 | assert lb.created == datetime.datetime(2016, 1, 30, 23, 50, tzinfo=timezone.utc) |
| 62 | + |
| 63 | + def test_private_net_for(self): |
| 64 | + network1 = Network(id=1) |
| 65 | + network2 = Network(id=2) |
| 66 | + network3 = Network(id=3) |
| 67 | + |
| 68 | + load_balancer = LoadBalancer( |
| 69 | + id=42, |
| 70 | + private_net=[ |
| 71 | + PrivateNet(network=network1, ip="127.0.0.1"), |
| 72 | + PrivateNet(network=network2, ip="127.0.0.1"), |
| 73 | + ], |
| 74 | + ) |
| 75 | + |
| 76 | + assert load_balancer.private_net_for(network1).network.id == 1 |
| 77 | + assert load_balancer.private_net_for(network3) is None |
| 78 | + |
| 79 | + load_balancer = BoundLoadBalancer( |
| 80 | + client=mock.MagicMock(), |
| 81 | + data={ |
| 82 | + "id": 42, |
| 83 | + "private_net": [ |
| 84 | + {"network": 1, "ip": "127.0.0.1"}, |
| 85 | + {"network": 2, "ip": "127.0.0.1"}, |
| 86 | + ], |
| 87 | + }, |
| 88 | + ) |
| 89 | + |
| 90 | + assert load_balancer.private_net_for(network1).network.id == 1 |
| 91 | + assert load_balancer.private_net_for(network3) is None |
0 commit comments