|
25 | 25 | PlacementGroupPolicy, |
26 | 26 | PlacementGroupType, |
27 | 27 | PostgreSQLDatabase, |
| 28 | + ReservedIPAddress, |
28 | 29 | ) |
29 | 30 | from linode_api4.errors import ApiError |
30 | 31 | from linode_api4.linode_client import LinodeClient, MonitorClient |
@@ -727,3 +728,42 @@ def test_monitor_client(get_monitor_token_for_db_entities): |
727 | 728 | ) |
728 | 729 |
|
729 | 730 | return client, entity_ids |
| 731 | + |
| 732 | + |
| 733 | +@pytest.fixture |
| 734 | +def create_reserved_ip(test_linode_client): |
| 735 | + client = test_linode_client |
| 736 | + region = get_region(client, {"Linodes", "Cloud Firewall"}, site_type="core") |
| 737 | + reserved_ip = client.networking.reserved_ip_create( |
| 738 | + region=region, |
| 739 | + tags=["test1"] |
| 740 | + ) |
| 741 | + |
| 742 | + yield reserved_ip |
| 743 | + |
| 744 | + # Delete only if IP exists (some tests delete it earlier) |
| 745 | + if client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address): |
| 746 | + reserved_ip.delete() |
| 747 | + |
| 748 | + |
| 749 | +@pytest.fixture |
| 750 | +def create_reserved_ip_assigned(test_linode_client, create_linode): |
| 751 | + client = test_linode_client |
| 752 | + linode = create_linode |
| 753 | + reserved_ip = client.networking.reserved_ip_create( |
| 754 | + region=linode.region, |
| 755 | + tags=["test", "assigned"], |
| 756 | + ) |
| 757 | + |
| 758 | + client.networking.ip_addresses_assign( |
| 759 | + assignments=[{"address": reserved_ip.address, "linode_id": linode.id}], |
| 760 | + region=linode.region, |
| 761 | + ) |
| 762 | + |
| 763 | + reserved_ip = test_linode_client.load(ReservedIPAddress, reserved_ip.address) |
| 764 | + |
| 765 | + yield linode, reserved_ip |
| 766 | + |
| 767 | + # Delete only if IP exists (some tests delete it earlier) |
| 768 | + if client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address): |
| 769 | + reserved_ip.delete() |
0 commit comments