Edgewall Software

Ticket #290: genshi-290.diff

File genshi-290.diff, 1.5 KB (added by Stephen Compall <stephen.compall@…>, 15 years ago)

patch with unit testing

  • genshi/filters/tests/transform.py

     
    522522            self._filter('.', 'foo'),
    523523            [[(None, TEXT, u'foo')]])
    524524
     525    def test_filter_after_outside(self):
     526        stream = _transform(
     527            '<root>x</root>', Transformer('//root/text()').filter(lambda x: x))
     528        self.assertEqual(
     529            list(stream),
     530            [(None, START, u'root'),
     531             (OUTSIDE, TEXT, u'x'),
     532             (None, END, u'root')])
    525533
     534
    526535class MapTest(unittest.TestCase):
    527536    def _map(self, select, kind=None):
    528537        data = []
  • genshi/filters/transform.py

     
    912912                for queue_event in flush(queue):
    913913                    yield queue_event
    914914            elif mark is OUTSIDE:
    915                 stopped = True
     915                stopped = False
    916916                queue.append(event)
    917917                for mark, event in stream:
    918918                    if mark is not OUTSIDE:
     
    923923                for queue_event in flush(queue):
    924924                    yield queue_event
    925925                if not stopped:
    926                     yield None, event
     926                    yield mark, event
    927927            else:
    928928                yield mark, event
    929929        for queue_event in flush(queue):