Skip to content

Commit 3d70ecc

Browse files
committed
Create int tests for Reserved IPs: ephemeral
1 parent 799f113 commit 3d70ecc

1 file changed

Lines changed: 44 additions & 4 deletions

File tree

test/integration/models/networking/test_networking.py

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,9 @@ def create_reserved_ip(test_linode_client):
364364

365365
yield reserved_ip
366366

367-
reserved_ip.delete()
367+
# Delete only if IP exists (some tests delete it earlier)
368+
if client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address):
369+
reserved_ip.delete()
368370

369371

370372
@pytest.fixture
@@ -386,7 +388,7 @@ def create_reserved_ip_assigned(test_linode_client, create_linode):
386388
yield linode, reserved_ip
387389

388390
# Delete only if IP exists (some tests delete it earlier)
389-
if reserved_ip.address in [ip.address for ip in client.networking.reserved_ips()]:
391+
if client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address):
390392
reserved_ip.delete()
391393

392394

@@ -444,12 +446,15 @@ def test_create_reserved_ip_wo_region_fail(test_linode_client):
444446

445447

446448
@pytest.mark.skip # NOTE: Skipped as tags not available in the API yet
447-
def test_update_reserved_ip_tags(create_reserved_ip):
449+
def test_update_reserved_ip_tags(test_linode_client, create_reserved_ip):
450+
client = test_linode_client
448451
reserved_ip = create_reserved_ip
449452
verify_reserved_ip(reserved_ip)
450453
assert reserved_ip.tags == ["test"]
451454

452-
reserved_ip.save(tags=["updated"])
455+
reserved_ip.tags = ["updated"]
456+
reserved_ip.save()
457+
reserved_ip = client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address)[0]
453458
verify_reserved_ip(reserved_ip)
454459
assert reserved_ip.tags == ["updated"]
455460

@@ -540,3 +545,38 @@ def test_create_reserved_ip_with_allocate_fail(test_linode_client, create_linode
540545
error_msg = str(exc_info.value.json)
541546
assert exc_info.value.status == 400
542547
assert "Region passed in must match Linode's region" in error_msg
548+
549+
550+
def test_reserve_ephemeral_ip(test_linode_client, create_linode):
551+
client = test_linode_client
552+
linode = create_linode
553+
554+
ip_address = client.load(IPAddress, linode.ipv4[0])
555+
assert ip_address.linode_id == linode.id
556+
assert ip_address.reserved == False
557+
558+
ip_address.reserved = True
559+
# ip_address.rdns = "test.example.org" # TODO: Should be enabled ?
560+
ip_address.save()
561+
ip_address = client.load(IPAddress, linode.ipv4[0])
562+
assert ip_address.linode_id == linode.id
563+
assert ip_address.reserved == True
564+
565+
ip_address.reserved = False
566+
ip_address.save()
567+
ip_address = client.load(IPAddress, linode.ipv4[0])
568+
assert ip_address.linode_id == linode.id
569+
assert ip_address.reserved == False
570+
571+
572+
def test_convert_unassigned_reserved_ip_to_ephemeral(test_linode_client, create_reserved_ip):
573+
client = test_linode_client
574+
reserved_ip = create_reserved_ip
575+
verify_reserved_ip(reserved_ip)
576+
577+
ip_address = client.load(IPAddress, reserved_ip.address)
578+
ip_address.reserved = False
579+
ip_address.save()
580+
581+
reserved_ips_list = client.networking.reserved_ips(ReservedIPAddress.address==reserved_ip.address)
582+
assert len(reserved_ips_list) == 0

0 commit comments

Comments
 (0)