def test_newlines(self): stream = HTMLInputStream(codecs.BOM_UTF8 + "a\nbb\r\nccc\rddddxe") self.assertEquals(stream.position(), (1, 0)) self.assertEquals(stream.charsUntil('c'), u"a\nbb\n") self.assertEquals(stream.position(), (3, 0)) self.assertEquals(stream.charsUntil('x'), u"ccc\ndddd") self.assertEquals(stream.position(), (4, 4)) self.assertEquals(stream.charsUntil('e'), u"x") self.assertEquals(stream.position(), (4, 5))
def test_position(self): stream = HTMLInputStream(codecs.BOM_UTF8 + "a\nbb\nccc\nddde\nf\ngh") self.assertEquals(stream.position(), (1, 0)) self.assertEquals(stream.charsUntil('c'), u"a\nbb\n") self.assertEquals(stream.position(), (3, 0)) stream.unget(u"\n") self.assertEquals(stream.position(), (2, 2)) self.assertEquals(stream.charsUntil('c'), u"\n") self.assertEquals(stream.position(), (3, 0)) stream.unget(u"\n") self.assertEquals(stream.position(), (2, 2)) self.assertEquals(stream.char(), u"\n") self.assertEquals(stream.position(), (3, 0)) self.assertEquals(stream.charsUntil('e'), u"ccc\nddd") self.assertEquals(stream.position(), (4, 3)) self.assertEquals(stream.charsUntil('h'), u"e\nf\ng") self.assertEquals(stream.position(), (6, 1))
def test_position2(self): stream = HTMLInputStream("abc\nd") self.assertEquals(stream.position(), (1, 0)) self.assertEquals(stream.char(), u"a") self.assertEquals(stream.position(), (1, 1)) self.assertEquals(stream.char(), u"b") self.assertEquals(stream.position(), (1, 2)) self.assertEquals(stream.char(), u"c") self.assertEquals(stream.position(), (1, 3)) self.assertEquals(stream.char(), u"\n") self.assertEquals(stream.position(), (2, 0)) self.assertEquals(stream.char(), u"d") self.assertEquals(stream.position(), (2, 1))