Mercurial > genshi > mirror
changeset 801:aa296d1c0a3d stable-0.5.x
Ported [1000] to stable branch.
author | cmlenz |
---|---|
date | Tue, 03 Mar 2009 20:20:09 +0000 |
parents | 5d8ca3f527af |
children | 6bf73f6aa2b6 |
files | ChangeLog genshi/filters/tests/transform.py genshi/filters/transform.py |
diffstat | 3 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ * Fix problem with I18n filter that would get confused by expressions in attribute values when inside an `i18n:msg` block (ticket #250). + * Fix problem with the transformation filter dropping events after the + selection (ticket #290). Version 0.5.1
--- a/genshi/filters/tests/transform.py +++ b/genshi/filters/tests/transform.py @@ -522,6 +522,15 @@ self._filter('.', 'foo'), [[(None, TEXT, u'foo')]]) + def test_filter_after_outside(self): + stream = _transform( + '<root>x</root>', Transformer('//root/text()').filter(lambda x: x)) + self.assertEqual( + list(stream), + [(None, START, u'root'), + (OUTSIDE, TEXT, u'x'), + (None, END, u'root')]) + class MapTest(unittest.TestCase): def _map(self, select, kind=None):
--- a/genshi/filters/transform.py +++ b/genshi/filters/transform.py @@ -912,7 +912,7 @@ for queue_event in flush(queue): yield queue_event elif mark is OUTSIDE: - stopped = True + stopped = False queue.append(event) for mark, event in stream: if mark is not OUTSIDE: @@ -923,7 +923,7 @@ for queue_event in flush(queue): yield queue_event if not stopped: - yield None, event + yield mark, event else: yield mark, event for queue_event in flush(queue):