@@ -864,6 +864,86 @@ def test__is_vlan_project_network_no_vlan_driver(self):
864864 }
865865 self .assertFalse (self .driver ._is_vlan_project_network (provider_net ))
866866
867+ def _mock_tunnel_driver (self , network_type , ranges ):
868+ mock_tunnel_driver = mock .Mock ()
869+ mock_tunnel_driver .obj .get_network_segment_ranges .return_value = ranges
870+ return mock .patch .object (
871+ self .driver , 'get_tunnel_driver' ,
872+ return_value = mock_tunnel_driver )
873+
874+ def test__is_tunnel_project_network_with_multiple_ranges (self ):
875+ with self ._mock_tunnel_driver (
876+ constants .TYPE_VXLAN , [(100 , 200 ), (300 , 400 )]):
877+ provider_net_in_range = {
878+ 'network_type' : constants .TYPE_VXLAN ,
879+ 'segmentation_id' : 150 ,
880+ }
881+ self .assertTrue (
882+ self .driver ._is_tunnel_project_network (provider_net_in_range ))
883+
884+ provider_net_between_ranges = {
885+ 'network_type' : constants .TYPE_VXLAN ,
886+ 'segmentation_id' : 250 ,
887+ }
888+ self .assertFalse (self .driver ._is_tunnel_project_network (
889+ provider_net_between_ranges ))
890+
891+ provider_net_second_range = {
892+ 'network_type' : constants .TYPE_VXLAN ,
893+ 'segmentation_id' : 350 ,
894+ }
895+ self .assertTrue (self .driver ._is_tunnel_project_network (
896+ provider_net_second_range ))
897+
898+ def test__is_tunnel_project_network_boundary_values (self ):
899+ with self ._mock_tunnel_driver (constants .TYPE_GENEVE , [(100 , 200 )]):
900+ provider_net_min = {
901+ 'network_type' : constants .TYPE_GENEVE ,
902+ 'segmentation_id' : 100 ,
903+ }
904+ self .assertTrue (
905+ self .driver ._is_tunnel_project_network (provider_net_min ))
906+
907+ provider_net_max = {
908+ 'network_type' : constants .TYPE_GENEVE ,
909+ 'segmentation_id' : 200 ,
910+ }
911+ self .assertTrue (
912+ self .driver ._is_tunnel_project_network (provider_net_max ))
913+
914+ provider_net_below = {
915+ 'network_type' : constants .TYPE_GENEVE ,
916+ 'segmentation_id' : 99 ,
917+ }
918+ self .assertFalse (
919+ self .driver ._is_tunnel_project_network (provider_net_below ))
920+
921+ provider_net_above = {
922+ 'network_type' : constants .TYPE_GENEVE ,
923+ 'segmentation_id' : 201 ,
924+ }
925+ self .assertFalse (
926+ self .driver ._is_tunnel_project_network (provider_net_above ))
927+
928+ def test__is_tunnel_project_network_empty_ranges (self ):
929+ with self ._mock_tunnel_driver (constants .TYPE_GRE , []):
930+ provider_net = {
931+ 'network_type' : constants .TYPE_GRE ,
932+ 'segmentation_id' : 100 ,
933+ }
934+ self .assertFalse (
935+ self .driver ._is_tunnel_project_network (provider_net ))
936+
937+ def test__is_tunnel_project_network_no_tunnel_driver (self ):
938+ with mock .patch .object (
939+ self .driver , 'get_tunnel_driver' , return_value = None ):
940+ provider_net = {
941+ 'network_type' : constants .TYPE_VXLAN ,
942+ 'segmentation_id' : 100 ,
943+ }
944+ self .assertFalse (
945+ self .driver ._is_tunnel_project_network (provider_net ))
946+
867947
868948class TestDesignateClientKeystoneV3 (testtools .TestCase ):
869949 """Test case for designate clients """
0 commit comments