11import ipaddress
2+ import requests
23import time
34from test .integration .conftest import (
45 get_api_ca_file ,
@@ -394,7 +395,7 @@ def test_create_reserved_ip(request, test_linode_client, region, tags):
394395 request .addfinalizer (reserved_ip .delete )
395396
396397 verify_reserved_ip (reserved_ip )
397- # assert reserved_ip.tags == tags # NOTE: Skipped as tags not available in the API yet
398+ assert reserved_ip .tags == tags if tags else reserved_ip . tags == []
398399
399400
400401def test_create_reserved_ip_wo_region_fail (test_linode_client ):
@@ -411,7 +412,6 @@ def test_create_reserved_ip_wo_region_fail(test_linode_client):
411412 assert "region is required" in error_msg
412413
413414
414- @pytest .mark .skip # NOTE: Skipped as tags not available in the API yet
415415def test_update_reserved_ip_tags (test_linode_client , create_reserved_ip ):
416416 client = test_linode_client
417417 reserved_ip = create_reserved_ip
@@ -428,19 +428,18 @@ def test_update_reserved_ip_tags(test_linode_client, create_reserved_ip):
428428def test_create_reserved_ip_assigned (test_linode_client , create_reserved_ip_assigned ):
429429 client = test_linode_client
430430 linode , reserved_ip = create_reserved_ip_assigned
431-
432431 verify_reserved_ip_assigned (reserved_ip , linode )
433- # assert reserved_ip.tags == tags # NOTE: Skipped as tags not available in the API yet
432+ assert sorted ( reserved_ip .tags ) == [ "assigned" , "test" ]
434433
435- ips_list = client .networking .ips ()
436- assert reserved_ip .address in [ip .address for ip in ips_list ]
434+ # ips_list = client.networking.ips()
435+ # assert reserved_ip.address in [ip.address for ip in ips_list]
437436
438437 reserved_ips_list = client .networking .reserved_ips ()
439438 assert reserved_ip .address in [ip .address for ip in reserved_ips_list ]
440439
441- # linode_ips = linode.ips.ipv4.public
442- # assert len(linode_ips) == 2
443- # assert any([ip.reserved for ip in linode_ips])
440+ linode_ips = linode .ips .ipv4 .public
441+ assert len (linode_ips ) == 2
442+ assert any ([ip .reserved for ip in linode_ips ])
444443
445444 reserved_ip .delete ()
446445 reserved_ips_list = client .networking .reserved_ips ()
@@ -449,25 +448,25 @@ def test_create_reserved_ip_assigned(test_linode_client, create_reserved_ip_assi
449448 reserved_ips_list = client .networking .reserved_ips (ReservedIPAddress .address == reserved_ip .address )
450449 assert len (reserved_ips_list ) == 0
451450
452- # delattr(linode, "_ips")
453- # linode_ips = linode.ips.ipv4.public
454- # assert len(linode_ips) == 2
455- # assert not any([ip.reserved for ip in linode_ips])
456- # assert not any([ip.tags for ip in linode_ips]) # Tags should be removed ???
451+ delattr (linode , "_ips" )
452+ linode_ips = linode .ips .ipv4 .public
453+ assert len (linode_ips ) == 2
454+ assert not any ([ip .reserved for ip in linode_ips ])
455+ assert not any ([ip .tags for ip in linode_ips ]) # Tags should be removed
457456
458457
459458def test_get_reserved_ip_types (test_linode_client , create_reserved_ip ):
460- # TODO: Currently it uses client (token), should not it be publicly accessible (no token required) ???
461459 client = test_linode_client
462- types = client .networking . reserved_ip_types ()
463- assert types . only
460+ endpoint = client .base_url + "/ networking/reserved/ips/types"
461+ types = requests . get ( endpoint ). json ()[ "data" ] # Pricing should be publicly available
464462
465- pricing = types .first ()
466- assert pricing .id == "reserved-ipv4"
467- assert pricing .label == "Reserved IPv4"
468- assert pricing .price .hourly
469- # assert pricing.price.monthly is None
470- # assert pricing.region_prices == []
463+ assert isinstance (types , list )
464+ assert types [0 ]["id" ] == "reserved-ipv4"
465+ assert types [0 ]["label" ] == "Reserved IPv4"
466+ assert "hourly" in types [0 ]["price" ]
467+ assert "monthly" in types [0 ]["price" ]
468+ assert any (price != 0 for price in list (types [0 ]["price" ].values ()))
469+ assert isinstance (types [0 ]["region_prices" ], list )
471470
472471
473472@pytest .mark .smoke
@@ -486,7 +485,7 @@ def test_create_reserved_ip_with_allocate(test_linode_client, create_linode, res
486485 reserved_ip = client .networking .ip_allocate (reserved = reserved , linode = linode .id )
487486 verify_reserved_ip_assigned (reserved_ip , linode )
488487
489- # assert reserved_ip.tags == tags # TODO: Skipped as tags not available in the API yet
488+ assert reserved_ip .tags == []
490489
491490
492491def test_reserve_ephemeral_ip (test_linode_client , create_linode ):
@@ -498,7 +497,6 @@ def test_reserve_ephemeral_ip(test_linode_client, create_linode):
498497 assert ip_address .reserved == False
499498
500499 ip_address .reserved = True
501- # ip_address.rdns = "test.example.org" # TODO: Should be enabled ?
502500 ip_address .save ()
503501 ip_address = client .load (IPAddress , linode .ipv4 [0 ])
504502 assert ip_address .linode_id == linode .id
@@ -522,7 +520,3 @@ def test_convert_unassigned_reserved_ip_to_ephemeral(test_linode_client, create_
522520
523521 reserved_ips_list = client .networking .reserved_ips (ReservedIPAddress .address == reserved_ip .address )
524522 assert len (reserved_ips_list ) == 0
525-
526-
527- # def test_create_unassigned_reserved_ip_with_rdns():
528- # pass
0 commit comments