diff options
-rw-r--r-- | filters/stringiter_combine.py | 17 | ||||
-rw-r--r-- | tests/filters/stringiter_combine.py | 36 |
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')) |