@@ -32,7 +32,10 @@ def setUp(self):
3232
3333 # Get a shortcut to the network client
3434 self .network = self .app .client_manager .network
35+ # Get a shortcut to the ProjectManager Mock
3536 self .projects_mock = self .app .client_manager .identity .projects
37+ # Get a shortcut to the DomainManager Mock
38+ self .domains_mock = self .app .client_manager .identity .domains
3639
3740
3841class TestCreateFloatingIPNetwork (TestFloatingIPNetwork ):
@@ -287,6 +290,9 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
287290 fake_port = network_fakes .FakePort .create_one_port ({
288291 'id' : 'fake_port_id' ,
289292 })
293+ fake_router = network_fakes .FakeRouter .create_one_router ({
294+ 'id' : 'fake_router_id' ,
295+ })
290296
291297 columns = (
292298 'ID' ,
@@ -296,8 +302,14 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
296302 'Floating Network' ,
297303 'Project' ,
298304 )
305+ columns_long = columns + (
306+ 'Router' ,
307+ 'Status' ,
308+ 'Description' ,
309+ )
299310
300311 data = []
312+ data_long = []
301313 for ip in floating_ips :
302314 data .append ((
303315 ip .id ,
@@ -307,13 +319,25 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
307319 ip .floating_network_id ,
308320 ip .tenant_id ,
309321 ))
322+ data_long .append ((
323+ ip .id ,
324+ ip .floating_ip_address ,
325+ ip .fixed_ip_address ,
326+ ip .port_id ,
327+ ip .floating_network_id ,
328+ ip .tenant_id ,
329+ ip .router_id ,
330+ ip .status ,
331+ ip .description ,
332+ ))
310333
311334 def setUp (self ):
312335 super (TestListFloatingIPNetwork , self ).setUp ()
313336
314337 self .network .ips = mock .Mock (return_value = self .floating_ips )
315338 self .network .find_network = mock .Mock (return_value = self .fake_network )
316339 self .network .find_port = mock .Mock (return_value = self .fake_port )
340+ self .network .find_router = mock .Mock (return_value = self .fake_router )
317341
318342 # Get the command object to test
319343 self .cmd = floating_ip .ListFloatingIP (self .app , self .namespace )
@@ -380,6 +404,94 @@ def test_floating_ip_list_fixed_ip_address(self):
380404 self .assertEqual (self .columns , columns )
381405 self .assertEqual (self .data , list (data ))
382406
407+ def test_floating_ip_list_long (self ):
408+ arglist = ['--long' , ]
409+ verifylist = [('long' , True ), ]
410+
411+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
412+
413+ columns , data = self .cmd .take_action (parsed_args )
414+
415+ self .network .ips .assert_called_once_with ()
416+ self .assertEqual (self .columns_long , columns )
417+ self .assertEqual (self .data_long , list (data ))
418+
419+ def test_floating_ip_list_status (self ):
420+ arglist = [
421+ '--status' , 'ACTIVE' ,
422+ '--long' ,
423+ ]
424+ verifylist = [
425+ ('status' , 'ACTIVE' ),
426+ ]
427+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
428+
429+ columns , data = self .cmd .take_action (parsed_args )
430+
431+ self .network .ips .assert_called_once_with (** {
432+ 'status' : 'ACTIVE' ,
433+ })
434+ self .assertEqual (self .columns_long , columns )
435+ self .assertEqual (self .data_long , list (data ))
436+
437+ def test_floating_ip_list_project (self ):
438+ project = identity_fakes_v3 .FakeProject .create_one_project ()
439+ self .projects_mock .get .return_value = project
440+ arglist = [
441+ '--project' , project .id ,
442+ ]
443+ verifylist = [
444+ ('project' , project .id ),
445+ ]
446+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
447+
448+ columns , data = self .cmd .take_action (parsed_args )
449+ filters = {'tenant_id' : project .id ,
450+ 'project_id' : project .id , }
451+
452+ self .network .ips .assert_called_once_with (** filters )
453+
454+ self .assertEqual (self .columns , columns )
455+ self .assertEqual (self .data , list (data ))
456+
457+ def test_floating_ip_list_project_domain (self ):
458+ project = identity_fakes_v3 .FakeProject .create_one_project ()
459+ self .projects_mock .get .return_value = project
460+ arglist = [
461+ '--project' , project .id ,
462+ '--project-domain' , project .domain_id ,
463+ ]
464+ verifylist = [
465+ ('project' , project .id ),
466+ ]
467+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
468+
469+ columns , data = self .cmd .take_action (parsed_args )
470+ filters = {'tenant_id' : project .id ,
471+ 'project_id' : project .id , }
472+
473+ self .network .ips .assert_called_once_with (** filters )
474+ self .assertEqual (self .columns , columns )
475+ self .assertEqual (self .data , list (data ))
476+
477+ def test_floating_ip_list_router (self ):
478+ arglist = [
479+ '--router' , 'fake_router_id' ,
480+ '--long' ,
481+ ]
482+ verifylist = [
483+ ('router' , 'fake_router_id' ),
484+ ]
485+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
486+
487+ columns , data = self .cmd .take_action (parsed_args )
488+
489+ self .network .ips .assert_called_once_with (** {
490+ 'router_id' : 'fake_router_id' ,
491+ })
492+ self .assertEqual (self .columns_long , columns )
493+ self .assertEqual (self .data_long , list (data ))
494+
383495
384496class TestShowFloatingIPNetwork (TestFloatingIPNetwork ):
385497
0 commit comments