|
12 | 12 | # under the License. |
13 | 13 | # |
14 | 14 |
|
| 15 | +import argparse |
15 | 16 | import mock |
16 | 17 | from mock import call |
17 | 18 |
|
@@ -553,6 +554,8 @@ def test_volume_list_no_options(self): |
553 | 554 | ('all_projects', False), |
554 | 555 | ('name', None), |
555 | 556 | ('status', None), |
| 557 | + ('marker', None), |
| 558 | + ('limit', None), |
556 | 559 | ] |
557 | 560 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
558 | 561 |
|
@@ -581,6 +584,8 @@ def test_volume_list_project(self): |
581 | 584 | ('long', False), |
582 | 585 | ('all_projects', False), |
583 | 586 | ('status', None), |
| 587 | + ('marker', None), |
| 588 | + ('limit', None), |
584 | 589 | ] |
585 | 590 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
586 | 591 |
|
@@ -611,6 +616,8 @@ def test_volume_list_project_domain(self): |
611 | 616 | ('long', False), |
612 | 617 | ('all_projects', False), |
613 | 618 | ('status', None), |
| 619 | + ('marker', None), |
| 620 | + ('limit', None), |
614 | 621 | ] |
615 | 622 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
616 | 623 |
|
@@ -639,6 +646,8 @@ def test_volume_list_user(self): |
639 | 646 | ('long', False), |
640 | 647 | ('all_projects', False), |
641 | 648 | ('status', None), |
| 649 | + ('marker', None), |
| 650 | + ('limit', None), |
642 | 651 | ] |
643 | 652 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
644 | 653 |
|
@@ -668,6 +677,8 @@ def test_volume_list_user_domain(self): |
668 | 677 | ('long', False), |
669 | 678 | ('all_projects', False), |
670 | 679 | ('status', None), |
| 680 | + ('marker', None), |
| 681 | + ('limit', None), |
671 | 682 | ] |
672 | 683 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
673 | 684 |
|
@@ -696,6 +707,8 @@ def test_volume_list_name(self): |
696 | 707 | ('all_projects', False), |
697 | 708 | ('name', self.mock_volume.name), |
698 | 709 | ('status', None), |
| 710 | + ('marker', None), |
| 711 | + ('limit', None), |
699 | 712 | ] |
700 | 713 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
701 | 714 |
|
@@ -724,6 +737,8 @@ def test_volume_list_status(self): |
724 | 737 | ('all_projects', False), |
725 | 738 | ('name', None), |
726 | 739 | ('status', self.mock_volume.status), |
| 740 | + ('marker', None), |
| 741 | + ('limit', None), |
727 | 742 | ] |
728 | 743 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
729 | 744 |
|
@@ -752,6 +767,8 @@ def test_volume_list_all_projects(self): |
752 | 767 | ('all_projects', True), |
753 | 768 | ('name', None), |
754 | 769 | ('status', None), |
| 770 | + ('marker', None), |
| 771 | + ('limit', None), |
755 | 772 | ] |
756 | 773 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
757 | 774 |
|
@@ -780,6 +797,8 @@ def test_volume_list_long(self): |
780 | 797 | ('all_projects', False), |
781 | 798 | ('name', None), |
782 | 799 | ('status', None), |
| 800 | + ('marker', None), |
| 801 | + ('limit', None), |
783 | 802 | ] |
784 | 803 |
|
785 | 804 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
@@ -813,6 +832,58 @@ def test_volume_list_long(self): |
813 | 832 | ), ) |
814 | 833 | self.assertEqual(datalist, tuple(data)) |
815 | 834 |
|
| 835 | + def test_volume_list_with_marker_and_limit(self): |
| 836 | + arglist = [ |
| 837 | + "--marker", self.mock_volume.id, |
| 838 | + "--limit", "2", |
| 839 | + ] |
| 840 | + verifylist = [ |
| 841 | + ('long', False), |
| 842 | + ('all_projects', False), |
| 843 | + ('name', None), |
| 844 | + ('status', None), |
| 845 | + ('marker', self.mock_volume.id), |
| 846 | + ('limit', 2), |
| 847 | + ] |
| 848 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 849 | + |
| 850 | + columns, data = self.cmd.take_action(parsed_args) |
| 851 | + |
| 852 | + self.assertEqual(self.columns, columns) |
| 853 | + |
| 854 | + server = self.mock_volume.attachments[0]['server_id'] |
| 855 | + device = self.mock_volume.attachments[0]['device'] |
| 856 | + msg = 'Attached to %s on %s ' % (server, device) |
| 857 | + datalist = (( |
| 858 | + self.mock_volume.id, |
| 859 | + self.mock_volume.name, |
| 860 | + self.mock_volume.status, |
| 861 | + self.mock_volume.size, |
| 862 | + msg, |
| 863 | + ), ) |
| 864 | + |
| 865 | + self.volumes_mock.list.assert_called_once_with( |
| 866 | + marker=self.mock_volume.id, |
| 867 | + limit=2, |
| 868 | + search_opts={ |
| 869 | + 'status': None, |
| 870 | + 'project_id': None, |
| 871 | + 'user_id': None, |
| 872 | + 'display_name': None, |
| 873 | + 'all_tenants': False, } |
| 874 | + ) |
| 875 | + self.assertEqual(datalist, tuple(data)) |
| 876 | + |
| 877 | + def test_volume_list_negative_limit(self): |
| 878 | + arglist = [ |
| 879 | + "--limit", "-2", |
| 880 | + ] |
| 881 | + verifylist = [ |
| 882 | + ("limit", -2), |
| 883 | + ] |
| 884 | + self.assertRaises(argparse.ArgumentTypeError, self.check_parser, |
| 885 | + self.cmd, arglist, verifylist) |
| 886 | + |
816 | 887 |
|
817 | 888 | class TestVolumeSet(TestVolume): |
818 | 889 |
|
|
0 commit comments