@@ -552,6 +552,69 @@ def test_create_with_enable_default_route_ecmp_no_extension(self):
552552 parsed_args ,
553553 )
554554
555+ def test_create_with_qos_policy (self ):
556+ _network = network_fakes .create_one_network ()
557+ self .network_client .find_network = mock .Mock (return_value = _network )
558+ _qos_policy = (
559+ network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
560+ )
561+ self .network_client .find_qos_policy = mock .Mock (
562+ return_value = _qos_policy
563+ )
564+ arglist = [
565+ self .new_router .name ,
566+ '--external-gateway' ,
567+ _network .id ,
568+ '--qos-policy' ,
569+ _qos_policy .id ,
570+ ]
571+ verifylist = [
572+ ('name' , self .new_router .name ),
573+ ('enable' , True ),
574+ ('distributed' , False ),
575+ ('ha' , False ),
576+ ('qos_policy' , _qos_policy .id ),
577+ ('external_gateways' , [_network .id ]),
578+ ]
579+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
580+ columns , data = self .cmd .take_action (parsed_args )
581+ gw_info = {'network_id' : _network .id , 'qos_policy_id' : _qos_policy .id }
582+ self .network_client .create_router .assert_called_once_with (
583+ ** {
584+ 'admin_state_up' : True ,
585+ 'name' : self .new_router .name ,
586+ ** {'external_gateway_info' : gw_info },
587+ }
588+ )
589+ self .assertEqual (self .columns , columns )
590+ self .assertCountEqual (self .data , data )
591+
592+ def test_create_with_qos_policy_no_external_gateway (self ):
593+ _qos_policy = (
594+ network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
595+ )
596+ self .network_client .find_qos_policy = mock .Mock (
597+ return_value = _qos_policy
598+ )
599+ arglist = [
600+ self .new_router .name ,
601+ '--qos-policy' ,
602+ _qos_policy .id ,
603+ ]
604+ verifylist = [
605+ ('name' , self .new_router .name ),
606+ ('enable' , True ),
607+ ('distributed' , False ),
608+ ('ha' , False ),
609+ ('qos_policy' , _qos_policy .id ),
610+ ]
611+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
612+ self .assertRaises (
613+ exceptions .CommandError ,
614+ self .cmd .take_action ,
615+ parsed_args ,
616+ )
617+
555618
556619class TestDeleteRouter (TestRouter ):
557620 # The routers to delete.
0 commit comments