@@ -267,6 +267,46 @@ def test_router_list_long(self):
267267 self .assertEqual (self .data_long , list (data ))
268268
269269
270+ class TestRemovePortFromRouter (TestRouter ):
271+ '''Remove port from a Router '''
272+
273+ _port = network_fakes .FakePort .create_one_port ()
274+ _router = network_fakes .FakeRouter .create_one_router (
275+ attrs = {'port' : _port .id })
276+
277+ def setUp (self ):
278+ super (TestRemovePortFromRouter , self ).setUp ()
279+ self .network .router_remove_interface = mock .Mock ()
280+ self .cmd = router .RemovePortFromRouter (self .app , self .namespace )
281+ self .network .find_router = mock .Mock (return_value = self ._router )
282+ self .network .find_port = mock .Mock (return_value = self ._port )
283+
284+ def test_remove_port_no_option (self ):
285+ arglist = []
286+ verifylist = []
287+
288+ # Missing required args should bail here
289+ self .assertRaises (tests_utils .ParserException , self .check_parser ,
290+ self .cmd , arglist , verifylist )
291+
292+ def test_remove_port_required_options (self ):
293+ arglist = [
294+ self ._router .id ,
295+ self ._router .port ,
296+ ]
297+ verifylist = [
298+ ('router' , self ._router .id ),
299+ ('port' , self ._router .port ),
300+ ]
301+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
302+
303+ result = self .cmd .take_action (parsed_args )
304+
305+ self .network .router_remove_interface .assert_called_with (
306+ self ._router , ** {'port_id' : self ._router .port })
307+ self .assertIsNone (result )
308+
309+
270310class TestSetRouter (TestRouter ):
271311
272312 # The router to set.
0 commit comments