summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hellmann <doug.hellmann@dreamhost.com>2012-08-31 07:30:58 -0400
committerDoug Hellmann <doug.hellmann@dreamhost.com>2012-08-31 07:30:58 -0400
commit77a170c24e7f2ae13fc2d27fe17d8fc711bc1531 (patch)
treedd81c398a7b86e6c27b74f1a80932707abda3aa3
parentd19beec8196b6ff203cad513e3fa5350c5dcf0a8 (diff)
downloadcliff-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.py2
-rw-r--r--tests/test_lister.py55
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']]
+