@@ -698,3 +698,54 @@ def test_show_all_options(self):
698698 self ._router .name , ignore_missing = False )
699699 self .assertEqual (self .columns , columns )
700700 self .assertEqual (self .data , data )
701+
702+
703+ class TestUnsetRouter (TestRouter ):
704+
705+ def setUp (self ):
706+ super (TestUnsetRouter , self ).setUp ()
707+ self ._testrouter = network_fakes .FakeRouter .create_one_router (
708+ {'routes' : [{"destination" : "192.168.101.1/24" ,
709+ "gateway" : "172.24.4.3" },
710+ {"destination" : "192.168.101.2/24" ,
711+ "gateway" : "172.24.4.3" }], })
712+ self .fake_subnet = network_fakes .FakeSubnet .create_one_subnet ()
713+ self .network .find_router = mock .Mock (return_value = self ._testrouter )
714+ self .network .update_router = mock .Mock (return_value = None )
715+ # Get the command object to test
716+ self .cmd = router .UnsetRouter (self .app , self .namespace )
717+
718+ def test_unset_router_params (self ):
719+ arglist = [
720+ '--route' , 'destination=192.168.101.1/24,gateway=172.24.4.3' ,
721+ self ._testrouter .name ,
722+ ]
723+ verifylist = [
724+ ('routes' , [
725+ {"destination" : "192.168.101.1/24" , "gateway" : "172.24.4.3" }]),
726+ ]
727+
728+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
729+ result = self .cmd .take_action (parsed_args )
730+
731+ attrs = {
732+ 'routes' : [{"destination" : "192.168.101.2/24" ,
733+ "nexthop" : "172.24.4.3" }],
734+ }
735+ self .network .update_router .assert_called_once_with (
736+ self ._testrouter , ** attrs )
737+ self .assertIsNone (result )
738+
739+ def test_unset_router_wrong_routes (self ):
740+ arglist = [
741+ '--route' , 'destination=192.168.101.1/24,gateway=172.24.4.2' ,
742+ self ._testrouter .name ,
743+ ]
744+ verifylist = [
745+ ('routes' , [
746+ {"destination" : "192.168.101.1/24" , "gateway" : "172.24.4.2" }]),
747+ ]
748+
749+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
750+ self .assertRaises (exceptions .CommandError ,
751+ self .cmd .take_action , parsed_args )
0 commit comments