summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cliff/lister.py2
-rw-r--r--cliff/tests/test_command.py20
2 files changed, 21 insertions, 1 deletions
diff --git a/cliff/lister.py b/cliff/lister.py
index 93a6b86..e0fab01 100644
--- a/cliff/lister.py
+++ b/cliff/lister.py
@@ -50,7 +50,7 @@ class Lister(display.DisplayCommandBase):
parser = super(Lister, self).get_parser(prog_name)
group = self._formatter_group
group.add_argument(
- '-s', '--sort-column',
+ '--sort-column',
action='append',
default=[],
dest='sort_columns',
diff --git a/cliff/tests/test_command.py b/cliff/tests/test_command.py
index 8e1a0f3..6aecff3 100644
--- a/cliff/tests/test_command.py
+++ b/cliff/tests/test_command.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import argparse
import functools
from cliff import command
@@ -42,6 +43,10 @@ class TestCommand(command.Command):
help="The quick brown fox jumps "
"over the lazy dog.",
)
+ parser.add_argument(
+ '-z',
+ help='used in TestArgumentParser',
+ )
return parser
def take_action(self, parsed_args):
@@ -128,3 +133,18 @@ class TestHelp(base.TestBase):
width=78,
)
self.assertIn(expected_help_message, parser.format_help())
+
+
+class TestArgumentParser(base.TestBase):
+
+ def test_option_name_collision(self):
+ cmd = TestCommand(None, None)
+ parser = cmd.get_parser('NAME')
+ # We should have an exception registering an option with a
+ # name that already exists because we do not want commands to
+ # override global options.
+ self.assertRaises(
+ argparse.ArgumentError,
+ parser.add_argument,
+ '-z',
+ )