@@ -704,10 +704,10 @@ def test_set_route(self):
704704 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
705705
706706 result = self .cmd .take_action (parsed_args )
707-
707+ routes = [{'destination' : '10.20.30.0/24' ,
708+ 'nexthop' : '10.20.30.1' }]
708709 attrs = {
709- 'routes' : self ._router .routes + [{'destination' : '10.20.30.0/24' ,
710- 'nexthop' : '10.20.30.1' }],
710+ 'routes' : routes + self ._router .routes
711711 }
712712 self .network .update_router .assert_called_once_with (
713713 self ._router , ** attrs )
@@ -733,21 +733,31 @@ def test_set_no_route(self):
733733 self ._router , ** attrs )
734734 self .assertIsNone (result )
735735
736- def test_set_route_no_route (self ):
736+ def test_set_route_overwrite_route (self ):
737+ _testrouter = network_fakes .FakeRouter .create_one_router (
738+ {'routes' : [{"destination" : "10.0.0.2" ,
739+ "nexthop" : "1.1.1.1" }]})
740+ self .network .find_router = mock .Mock (return_value = _testrouter )
737741 arglist = [
738- self . _router .name ,
742+ _testrouter .name ,
739743 '--route' , 'destination=10.20.30.0/24,gateway=10.20.30.1' ,
740744 '--no-route' ,
741745 ]
742746 verifylist = [
743- ('router' , self . _router .name ),
747+ ('router' , _testrouter .name ),
744748 ('routes' , [{'destination' : '10.20.30.0/24' ,
745749 'gateway' : '10.20.30.1' }]),
746750 ('no_route' , True ),
747751 ]
748-
749- self .assertRaises (tests_utils .ParserException , self .check_parser ,
750- self .cmd , arglist , verifylist )
752+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
753+ result = self .cmd .take_action (parsed_args )
754+ attrs = {
755+ 'routes' : [{'destination' : '10.20.30.0/24' ,
756+ 'nexthop' : '10.20.30.1' }]
757+ }
758+ self .network .update_router .assert_called_once_with (
759+ _testrouter , ** attrs )
760+ self .assertIsNone (result )
751761
752762 def test_set_clear_routes (self ):
753763 arglist = [
@@ -769,21 +779,31 @@ def test_set_clear_routes(self):
769779 self ._router , ** attrs )
770780 self .assertIsNone (result )
771781
772- def test_set_route_clear_routes (self ):
782+ def test_overwrite_route_clear_routes (self ):
783+ _testrouter = network_fakes .FakeRouter .create_one_router (
784+ {'routes' : [{"destination" : "10.0.0.2" ,
785+ "nexthop" : "1.1.1.1" }]})
786+ self .network .find_router = mock .Mock (return_value = _testrouter )
773787 arglist = [
774- self . _router .name ,
788+ _testrouter .name ,
775789 '--route' , 'destination=10.20.30.0/24,gateway=10.20.30.1' ,
776790 '--clear-routes' ,
777791 ]
778792 verifylist = [
779- ('router' , self . _router .name ),
793+ ('router' , _testrouter .name ),
780794 ('routes' , [{'destination' : '10.20.30.0/24' ,
781795 'gateway' : '10.20.30.1' }]),
782796 ('clear_routes' , True ),
783797 ]
784-
785- self .assertRaises (tests_utils .ParserException , self .check_parser ,
786- self .cmd , arglist , verifylist )
798+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
799+ result = self .cmd .take_action (parsed_args )
800+ attrs = {
801+ 'routes' : [{'destination' : '10.20.30.0/24' ,
802+ 'nexthop' : '10.20.30.1' }]
803+ }
804+ self .network .update_router .assert_called_once_with (
805+ _testrouter , ** attrs )
806+ self .assertIsNone (result )
787807
788808 def test_set_nothing (self ):
789809 arglist = [
0 commit comments