|
4 | 4 |
|
5 | 5 | from hcloud.actions.client import BoundAction |
6 | 6 | from hcloud.networks.client import BoundNetwork, NetworksClient |
7 | | -from hcloud.networks.domain import NetworkSubnet, NetworkRoute |
| 7 | +from hcloud.networks.domain import NetworkSubnet, NetworkRoute, Network |
8 | 8 | from hcloud.servers.client import BoundServer |
9 | 9 |
|
10 | 10 |
|
@@ -119,6 +119,15 @@ def test_delete_route(self, hetzner_client, bound_network, generic_action): |
119 | 119 | assert action.id == 1 |
120 | 120 | assert action.progress == 0 |
121 | 121 |
|
| 122 | + def test_change_ip(self, hetzner_client, bound_network, generic_action): |
| 123 | + hetzner_client.request.return_value = generic_action |
| 124 | + action = bound_network.change_ip_range("10.0.0.0/12") |
| 125 | + hetzner_client.request.assert_called_with(url="/networks/14/actions/change_ip_range", method="POST", |
| 126 | + json={"ip_range": "10.0.0.0/12"}) |
| 127 | + |
| 128 | + assert action.id == 1 |
| 129 | + assert action.progress == 0 |
| 130 | + |
122 | 131 |
|
123 | 132 | class TestNetworksClient(object): |
124 | 133 |
|
@@ -294,3 +303,100 @@ def test_create_with_route_and_subnet(self, networks_client, network_subnet, net |
294 | 303 | ] |
295 | 304 | } |
296 | 305 | ) |
| 306 | + |
| 307 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 308 | + def test_get_actions_list(self, networks_client, network, response_get_actions): |
| 309 | + networks_client._client.request.return_value = response_get_actions |
| 310 | + result = networks_client.get_actions_list(network, sort="id") |
| 311 | + networks_client._client.request.assert_called_with(url="/networks/1/actions", method="GET", |
| 312 | + params={"sort": "id"}) |
| 313 | + |
| 314 | + actions = result.actions |
| 315 | + assert len(actions) == 1 |
| 316 | + assert isinstance(actions[0], BoundAction) |
| 317 | + |
| 318 | + assert actions[0]._client == networks_client._client.actions |
| 319 | + assert actions[0].id == 13 |
| 320 | + assert actions[0].command == "add_subnet" |
| 321 | + |
| 322 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 323 | + def test_update(self, networks_client, network, response_update_network): |
| 324 | + networks_client._client.request.return_value = response_update_network |
| 325 | + network = networks_client.update(network, name="new-name") |
| 326 | + networks_client._client.request.assert_called_with(url="/networks/1", method="PUT", json={"name": "new-name"}) |
| 327 | + |
| 328 | + assert network.id == 4711 |
| 329 | + assert network.name == "new-name" |
| 330 | + |
| 331 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 332 | + def test_change_protection(self, networks_client, network, generic_action): |
| 333 | + networks_client._client.request.return_value = generic_action |
| 334 | + action = networks_client.change_protection(network, True) |
| 335 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/change_protection", method="POST", |
| 336 | + json={"delete": True}) |
| 337 | + |
| 338 | + assert action.id == 1 |
| 339 | + assert action.progress == 0 |
| 340 | + |
| 341 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 342 | + def test_delete(self, networks_client, network, generic_action): |
| 343 | + networks_client._client.request.return_value = generic_action |
| 344 | + delete_success = networks_client.delete(network) |
| 345 | + networks_client._client.request.assert_called_with(url="/networks/1", method="DELETE") |
| 346 | + |
| 347 | + assert delete_success is True |
| 348 | + |
| 349 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 350 | + def test_add_subnet(self, networks_client, network, generic_action, network_subnet): |
| 351 | + networks_client._client.request.return_value = generic_action |
| 352 | + |
| 353 | + action = networks_client.add_subnet(network, network_subnet) |
| 354 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/add_subnet", method="POST", |
| 355 | + json={"type": "server", "ip_range": "10.0.1.0/24", |
| 356 | + "network_zone": "eu-central"}) |
| 357 | + |
| 358 | + assert action.id == 1 |
| 359 | + assert action.progress == 0 |
| 360 | + |
| 361 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 362 | + def test_delete_subnet(self, networks_client, network, generic_action, network_subnet): |
| 363 | + networks_client._client.request.return_value = generic_action |
| 364 | + |
| 365 | + action = networks_client.delete_subnet(network, network_subnet) |
| 366 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/delete_subnet", method="POST", |
| 367 | + json={"ip_range": "10.0.1.0/24"}) |
| 368 | + |
| 369 | + assert action.id == 1 |
| 370 | + assert action.progress == 0 |
| 371 | + |
| 372 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 373 | + def test_add_route(self, networks_client, network, generic_action, network_route): |
| 374 | + networks_client._client.request.return_value = generic_action |
| 375 | + |
| 376 | + action = networks_client.add_route(network, network_route) |
| 377 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/add_route", method="POST", |
| 378 | + json={"destination": "10.100.1.0/24", "gateway": "10.0.1.1"}) |
| 379 | + |
| 380 | + assert action.id == 1 |
| 381 | + assert action.progress == 0 |
| 382 | + |
| 383 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 384 | + def test_delete_route(self, networks_client, network, generic_action, network_route): |
| 385 | + networks_client._client.request.return_value = generic_action |
| 386 | + |
| 387 | + action = networks_client.delete_route(network, network_route) |
| 388 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/delete_route", method="POST", |
| 389 | + json={"destination": "10.100.1.0/24", "gateway": "10.0.1.1"}) |
| 390 | + |
| 391 | + assert action.id == 1 |
| 392 | + assert action.progress == 0 |
| 393 | + |
| 394 | + @pytest.mark.parametrize("network", [Network(id=1), BoundNetwork(mock.MagicMock(), dict(id=1))]) |
| 395 | + def test_change_ip_range(self, networks_client, network, generic_action): |
| 396 | + networks_client._client.request.return_value = generic_action |
| 397 | + action = networks_client.change_ip_range(network, "10.0.0.0/12") |
| 398 | + networks_client._client.request.assert_called_with(url="/networks/1/actions/change_ip_range", method="POST", |
| 399 | + json={"ip_range": "10.0.0.0/12"}) |
| 400 | + |
| 401 | + assert action.id == 1 |
| 402 | + assert action.progress == 0 |
0 commit comments