diff options
author | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-08-31 07:30:58 -0400 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-08-31 07:30:58 -0400 |
commit | 77a170c24e7f2ae13fc2d27fe17d8fc711bc1531 (patch) | |
tree | dd81c398a7b86e6c27b74f1a80932707abda3aa3 | |
parent | d19beec8196b6ff203cad513e3fa5350c5dcf0a8 (diff) | |
download | cliff-77a170c24e7f2ae13fc2d27fe17d8fc711bc1531.tar.gz |
Fix problem with missing izip import in lister.py
Change-Id: I0a3cece614c77a1dcea8d4436a7b80e60ffc7ecd
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
-rw-r--r-- | cliff/lister.py | 2 | ||||
-rw-r--r-- | tests/test_lister.py | 55 |
2 files changed, 57 insertions, 0 deletions
diff --git a/cliff/lister.py b/cliff/lister.py index d4b4f2e..1b6c3b6 100644 --- a/cliff/lister.py +++ b/cliff/lister.py @@ -6,6 +6,8 @@ try: from itertools import compress except ImportError: # for py26 compat + from itertools import izip + def compress(data, selectors): return (d for d, s in izip(data, selectors) if s) diff --git a/tests/test_lister.py b/tests/test_lister.py new file mode 100644 index 0000000..f71986d --- /dev/null +++ b/tests/test_lister.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +from cliff.command import Command +from cliff.commandmanager import CommandManager +from cliff.formatters.base import ListFormatter +from cliff.lister import Lister + +import mock + + +class FauxFormatter(object): + + def __init__(self): + self.args = [] + + def emit_list(self, columns, data, stdout, args): + self.args.append((columns, data)) + +class ExerciseLister(Lister): + + def load_formatter_plugins(self): + self.formatters = { + 'test': FauxFormatter(), + } + return + + def take_action(self, parsed_args): + return ( + parsed_args.columns, + [('a', 'A'), ('b', 'B')], + ) + + +# def run(self, parsed_args): +# self.formatter = self.formatters[parsed_args.formatter] +# column_names, data = self.take_action(parsed_args) +# self.produce_output(parsed_args, column_names, data) +# return 0 + +def test_formatter_args(): + app = mock.Mock() + test_lister = ExerciseLister(app, []) + + parsed_args = mock.Mock() + parsed_args.columns = ('Col1', 'Col2') + parsed_args.formatter = 'test' + + test_lister.run(parsed_args) + f = test_lister.formatters['test'] + assert len(f.args) == 1 + args = f.args[0] + assert args[0] == list(parsed_args.columns) + data = list(args[1]) + assert data == [['a', 'A'], ['b', 'B']] + |