summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filters/stringiter_combine.py17
-rw-r--r--tests/filters/stringiter_combine.py36
2 files changed, 53 insertions, 0 deletions
diff --git a/filters/stringiter_combine.py b/filters/stringiter_combine.py
new file mode 100644
index 0000000..af06b5d
--- /dev/null
+++ b/filters/stringiter_combine.py
@@ -0,0 +1,17 @@
+# -*- coding: UTF-8 -*-
+# Copyright 2015 Red Hat, Inc.
+# Part of clufter project
+# Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt)
+"""stringiter-combine filter"""
+__author__ = "Jan Pokorný <jpokorny @at@ Red Hat .dot. com>"
+
+from itertools import chain
+
+from ..filter import Filter
+
+
+@Filter.deco(('string-iter', 'string-iter'), 'string-iter')
+def stringiter_combine2(flt_ctxt, in_objs):
+ """Combine multiple string-iter objects"""
+ return ('stringiter',
+ chain(*tuple(o('stringiter', protect_safe=True) for o in in_objs)))
diff --git a/tests/filters/stringiter_combine.py b/tests/filters/stringiter_combine.py
new file mode 100644
index 0000000..c47630d
--- /dev/null
+++ b/tests/filters/stringiter_combine.py
@@ -0,0 +1,36 @@
+# -*- coding: UTF-8 -*-
+# Copyright 2015 Red Hat, Inc.
+# Part of clufter project
+# Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt)
+"""Testing `stringiter-combine*' filter(s)"""
+__author__ = "Jan Pokorný <jpokorny @at@ Red Hat .dot. com>"
+
+from os.path import join, dirname as d; execfile(join(d(d((__file__))), '_go'))
+
+
+from os.path import dirname, join
+from unittest import TestCase
+
+from .filter_manager import FilterManager
+from .format import CompositeFormat
+from .formats.string_iter import string_iter
+flt = 'stringiter-combine2'
+stringiter_combine2 = FilterManager.init_lookup(flt).filters[flt]
+#ccs = ccspcmk2pcscmd.in_format
+
+
+class FiltersStringitercombineTestCase(TestCase):
+ def testStringiterCombine2(self):
+ result = stringiter_combine2(
+ CompositeFormat(
+ ('composite', ('stringiter', 'stringiter')),
+ iter("ABC"), iter("DEF"),
+ #"ABC", "DEF",
+ formats=(string_iter, string_iter),
+ )
+ )
+ #print result.BYTESTRING()
+ self.assertEquals(result.BYTESTRING(), '\n'.join("ABCDEF") + '\n')
+
+
+from os.path import join, dirname as d; execfile(join(d(d(__file__)), '_gone'))