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