@@ -877,3 +877,47 @@ def test_delete_interface_containing_vpc(
877877
878878 # returns true when delete successful
879879 assert result
880+
881+
882+ def test_create_linode_with_maintenance_policy (test_linode_client ):
883+ client = test_linode_client
884+ region = get_region (client , {"Linodes" }, site_type = "core" )
885+ label = get_test_label ()
886+
887+ policies = client .maintenance .maintenance_policies ()
888+ assert policies , "No maintenance policies returned from API"
889+
890+ non_default_policy = next ((p for p in policies if not p .is_default ), None )
891+ assert non_default_policy , "No non-default maintenance policy available"
892+
893+ linode_instance , password = client .linode .instance_create (
894+ "g6-nanode-1" ,
895+ region ,
896+ image = "linode/debian12" ,
897+ label = label + "_with_policy" ,
898+ maintenance_policy_id = non_default_policy .slug ,
899+ )
900+
901+ assert linode_instance .id is not None
902+ assert linode_instance .label .startswith (label )
903+ assert linode_instance .maintenance_policy == non_default_policy .slug
904+
905+ linode_instance .delete ()
906+
907+
908+ def test_update_linode_maintenance_policy (create_linode , test_linode_client ):
909+ client = test_linode_client
910+ linode = create_linode
911+
912+ policies = client .maintenance .maintenance_policies ()
913+ assert policies , "No maintenance policies returned from API"
914+
915+ non_default_policy = next ((p for p in policies if not p .is_default ), None )
916+ assert non_default_policy , "No non-default maintenance policy found"
917+
918+ linode .maintenance_policy_id = non_default_policy .slug
919+ result = linode .save ()
920+
921+ linode .invalidate ()
922+ assert result
923+ assert linode .maintenance_policy_id == non_default_policy .slug
0 commit comments