Admin Panel
from __future__ import print_function
from amitools.vamos.astructs import *
from amitools.vamos.lib.dos.CSource import CSource
from amitools.vamos.lib.dos.Item import ItemParser
def item_parser1_test():
csrc = CSource('hello world\n')
ip = ItemParser(csrc)
maxbuf = 256
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "hello")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "world")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_NOTHING, None)
def item_parser2_test():
csrc = CSource('"hello space" "world*n"\n')
ip = ItemParser(csrc)
maxbuf = 256
assert ip.read_item(maxbuf) == (ItemParser.ITEM_QUOTED, "hello space")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_QUOTED, "world\n")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_NOTHING, None)
def check_item_eol(in_str, itype, item, eol):
csrc = CSource(in_str + '\n')
ip = ItemParser(csrc)
maxbuf = 256
assert ip.read_item(maxbuf) == (itype, item)
assert ip.read_eol() == eol
assert ip.read_item(maxbuf) == (ItemParser.ITEM_NOTHING, None)
def item_parser3_test():
check_item_eol('a', ItemParser.ITEM_UNQUOTED, 'a', '')
check_item_eol('a b', ItemParser.ITEM_UNQUOTED, 'a', ' b')
check_item_eol('a b ', ItemParser.ITEM_UNQUOTED, 'a', ' b')
check_item_eol('"a" b', ItemParser.ITEM_QUOTED, 'a', ' b')
check_item_eol('"a" b ', ItemParser.ITEM_QUOTED, 'a', ' b ')
def item_parser_eol_bug_test():
csrc = CSource('hello world')
ip = ItemParser(csrc)
maxbuf = 256
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "hello")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "world")
# with eol_bug enabled we get last char again...
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "d")
# now again with fixed parser
csrc = CSource('hello world')
ip = ItemParser(csrc, eol_unget_bug=False)
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "hello")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_UNQUOTED, "world")
assert ip.read_item(maxbuf) == (ItemParser.ITEM_NOTHING, None)