@@ -541,6 +541,24 @@ def test_interface_ipv4(self):
541541 self .assertEqual (ipv4 .vpc , "10.0.0.1" )
542542 self .assertEqual (ipv4 .nat_1_1 , "any" )
543543
544+ def test_interface_ipv6 (self ):
545+ json = {
546+ "slaac" : [{"range" : "1234::5678/64" , "address" : "1234::5678" }],
547+ "ranges" : [{"range" : "1234::5678/64" }],
548+ "is_public" : True ,
549+ }
550+
551+ ipv6 = ConfigInterfaceIPv6 .from_json (json )
552+
553+ assert len (ipv6 .slaac ) == 1
554+ assert ipv6 .slaac [0 ].range == "1234::5678/64"
555+ assert ipv6 .slaac [0 ].address == "1234::5678"
556+
557+ assert len (ipv6 .ranges ) == 1
558+ assert ipv6 .ranges [0 ].range == "1234::5678/64"
559+
560+ assert ipv6 .is_public
561+
544562 def test_config_devices_unwrap (self ):
545563 """
546564 Tests that config devices can be successfully converted to a dict.
@@ -744,6 +762,11 @@ def test_create_interface_vpc(self):
744762 subnet = VPCSubnet (self .client , 789 , 123456 ),
745763 primary = True ,
746764 ipv4 = ConfigInterfaceIPv4 (vpc = "10.0.0.4" , nat_1_1 = "any" ),
765+ ipv6 = ConfigInterfaceIPv6Options (
766+ slaac = [ConfigInterfaceIPv6OptionsSLAAC (range = "auto" )],
767+ ranges = [ConfigInterfaceIPv6OptionsRange (range = "auto" )],
768+ is_public = True ,
769+ ),
747770 ip_ranges = ["10.0.0.0/24" ],
748771 )
749772
@@ -757,6 +780,11 @@ def test_create_interface_vpc(self):
757780 "primary" : True ,
758781 "subnet_id" : 789 ,
759782 "ipv4" : {"vpc" : "10.0.0.4" , "nat_1_1" : "any" },
783+ "ipv6" : {
784+ "slaac" : [{"range" : "auto" }],
785+ "ranges" : [{"range" : "auto" }],
786+ "is_public" : True ,
787+ },
760788 "ip_ranges" : ["10.0.0.0/24" ],
761789 }
762790
@@ -765,15 +793,27 @@ def test_create_interface_vpc(self):
765793 assert interface .primary
766794 assert interface .vpc .id == 123456
767795 assert interface .subnet .id == 789
796+
768797 assert interface .ipv4 .vpc == "10.0.0.2"
769798 assert interface .ipv4 .nat_1_1 == "any"
799+
800+ assert len (interface .ipv6 .slaac ) == 1
801+ assert interface .ipv6 .slaac [0 ].range == "1234::5678/64"
802+ assert interface .ipv6 .slaac [0 ].address == "1234::5678"
803+
804+ assert len (interface .ipv6 .ranges ) == 1
805+ assert interface .ipv6 .ranges [0 ].range == "1234::5678/64"
806+
807+ assert interface .ipv6 .is_public
808+
770809 assert interface .ip_ranges == ["10.0.0.0/24" ]
771810
772811 def test_update (self ):
773812 interface = NetworkInterface (self .client , 123 , 456789 , 123 )
774813 interface ._api_get ()
775814
776815 interface .ipv4 .vpc = "10.0.0.3"
816+ interface .ipv6 .is_public = False
777817 interface .primary = False
778818 interface .ip_ranges = ["10.0.0.2/32" ]
779819
@@ -791,6 +831,11 @@ def test_update(self):
791831 assert m .call_data == {
792832 "primary" : False ,
793833 "ipv4" : {"vpc" : "10.0.0.3" , "nat_1_1" : "any" },
834+ "ipv6" : {
835+ "slaac" : [{"range" : "auto" }],
836+ "ranges" : [{"range" : "auto" }],
837+ "is_public" : True ,
838+ },
794839 "ip_ranges" : ["10.0.0.2/32" ],
795840 }
796841
@@ -811,8 +856,17 @@ def test_get_vpc(self):
811856 self .assertEqual (interface .purpose , "vpc" )
812857 self .assertEqual (interface .vpc .id , 123456 )
813858 self .assertEqual (interface .subnet .id , 789 )
859+
814860 self .assertEqual (interface .ipv4 .vpc , "10.0.0.2" )
815861 self .assertEqual (interface .ipv4 .nat_1_1 , "any" )
862+
863+ self .assertEqual (len (interface .ipv6 .slaac ), 1 )
864+ self .assertEqual (interface .ipv6 .slaac [0 ].range , "1234::5678/64" )
865+ self .assertEqual (interface .ipv6 .slaac [0 ].address , "1234::5678" )
866+ self .assertEqual (len (interface .ipv6 .ranges ), 1 )
867+ self .assertEqual (interface .ipv6 .ranges [0 ].range , "1234::5678/64" )
868+ self .assertEqual (interface .ipv6 .is_public , True )
869+
816870 self .assertEqual (interface .ip_ranges , ["10.0.0.0/24" ])
817871 self .assertEqual (interface .active , True )
818872
0 commit comments