def test_getTable(self): parseObj = PyLuaTblParser() s = r'{[3]=1,[4]=2,[5]=3,}' result = parseObj.getTable(s, 0) print result s = r'{[3] = "xyz", ["xx"] = "sdb", yy = "fund", 123} ' result = parseObj.getTable(s, 0) print result
def test_getString(self): parseObj = PyLuaTblParser() s = '\'abcde"xyz\'' result, end = parseObj.getString(s, 0) self.assertTrue(result == 'abcde"xyz') self.assertTrue(end == 11) s = r' "e\n\'\'"' result = parseObj.getString(s, 0) print result
def testNilKey(): p1 = PyLuaTblParser() p1.loadLuaTable('test_dump.lua') d = { 'name': 'John', 'Country': { 'Name': 'USA', 'Desc': None }, 'Desc': None } p1.loadDict(d) print p1.dumpDict() p1['name'] = None print p1.dumpDict()
class TestPaser(unittest.TestCase): def test_dump(self): case = {} ans = {} case[0] = { "array": [65, 23, 5], "dict": { "mixed": { 1: 43, 2: 54.33, 3: False, 4: 9, "string": "value" }, "array": [3, 6, 4], "string": "value" } } ans[0] = ''' { array = { 65, 23, 5, }, dict = { mixed = { [1] = 43, [2] = 54.33, [3] = false, [4] = 9, "string" = "value", }, array = {3, 6, 4, }, string = "value", }, } ''' case[1] = { "list": [1, 2, 3, 4, None, "string"], 32: [None, 3, 4], 31.5: { 0: "a", 1: "b" } } ans[1] = ''' { "list"={1,2,3,4,nil,"string"}, [32] = {nil,3,4}, [31.5] = { [0]="a", [1]="b", }, } ''' parserObj = PyLuaTblParser() for i in range(2): parserObj.loadDict(case[i]) s = parserObj.dump() self.assertTrue("".join(s.split()), "".join(ans[i].split()))
def test_getNumber(self): parserObj = PyLuaTblParser() s = '123 ' result, end = parserObj.getNumber(s, 0) self.assertTrue(result == 123 and end == 3) s = '123.45 ' result, end = parserObj.getNumber(s, 1) self.assertTrue(result == 23.45 and end == 6) s = '123.45 ' result, end = parserObj.getNumber(s, 1) self.assertTrue(result == 23.45 and end == 6) s = '-123.45e2 ' result, end = parserObj.getNumber(s, 0) self.assertTrue(result == -12345 and end == 9) s = '.05 ' result, end = parserObj.getNumber(s, 0) self.assertTrue(result == 0.05 and end == 3) s = r'" abcd"' result = parserObj.getNumber(s, 0) print result
def testfile(f): p1 = PyLuaTblParser() p2 = PyLuaTblParser() infile = open(f) for line in infile: line = line.strip() if (len(line) == 0 or line[0] == '#'): continue try: print 'input : ' + line p1.load(line) p1.dumpLuaTable('test_dump.lua') p2.loadLuaTable('test_dump.lua') d1 = p1.dumpDict() d2 = p2.dumpDict() if (d1 != d2): print 'd1: ', d1 print 'd2: ', d2 raise Exception('Dump Error!') print '-----------------------' except LuaParseError, e: print e traceback.print_exc() print '-----------------------'
def testSingleTableFile(f): p1 = PyLuaTblParser() p2 = PyLuaTblParser() infile = open(f) try: s = infile.read() print 'input : ' + s p1.load(s) p1.dumpLuaTable('test_dump.lua') p2.loadLuaTable('test_dump.lua') d1 = p1.dumpDict() d2 = p2.dumpDict() if (d1 != d2): print 'd1: ', d1 print 'd2: ', d2 raise Exception('Dump Error!') print '-----------------------' except LuaParseError, e: print e print '-----------------------'
#coding=utf-8 #!/usr/bin/python __author__ = '竹明' from PyLuaTblParser import PyLuaTblParser a1 = PyLuaTblParser() #case in requirement # print "case1\n" # # test_str = '{array = {65,23,5},dict = {mixed = {43,54.33,false,nil,{string = "value"}},array = {3,6,4,},{string = "value"},},}' # #test_str = '{65,23}' # a1.load(test_str) # a1.debug_print() # d1 = a1.dump() # print d1 # a2 = PyLuaTblParser() a2.loadLuaTable("case1_in.txt") a2.debug_print() a2.dumpLuaTable("case1_out.txt") # # # a3 = PyLuaTblParser() # a3.loadLuaTable("case1_out.txt") # d3 = a3.dumpDict() # print d3 # a3.loadDict(a1.dumpDict()) # a3.debug_print() #case with Exception
#testCase.append('''{--{}\n{"abc\\n", '"a"', _abv = 1 }}''') #testCase.append('''{1,{},2}''') #testCase.append('''{1,"string",[4]="string",nil,[5]=nil,true,false}''') #testCase.append('''{'\\\''}''') #testCase.append('{\'\\\\"\\x08\\x0c\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\\\\\',./<>?\'}') #testCase.append('''{["\\\\\"\\x08\\x0c\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"] = 1, }''') #testCase.append("{\"\\\"\",\"\\n\"}") testCase.append(r'''{'\\"\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?'}''') for index, each in enumerate(testCase): print index, ': len' ,len(each) print each a1 = PyLuaTblParser() a2 = PyLuaTblParser() a3 = PyLuaTblParser() #a4 = PyLuaTblParser() a1.load(each) d1 = a1.dumpDict() #a = r'\\"\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?' #d1 = [a] a2.loadDict(d1) a2.dumpLuaTable(file_path) a3.loadLuaTable(file_path) d3 = a3.dump() print d3
def test1(): """ 单个测试用例 """ p = PyLuaTblParser() with open("t1.txt", "r") as fp: for idx, line in enumerate(fp): if line.isspace() or line.startswith("#") or line.startswith("--"): # print("Pass Comment") pass else: print("Line {}:".format(idx + 1)) p.load(line) print(p.dump()) p2 = PyLuaTblParser() p2.loadDict(p.dumpDict()) p2.dumpLuaTable("tmp") p.loadLuaTable("tmp") print(p2.dump())
def test3(): p1 = PyLuaTblParser() p2 = PyLuaTblParser() p1.loadLuaTable("t3.txt") pprint.pprint(p1.dumpDict()) p1.dumpLuaTable("tmp") p2.loadLuaTable("tmp") print(p2.dump())
def test2(): """ 组合用例 """ p1 = PyLuaTblParser() p2 = PyLuaTblParser() p3 = PyLuaTblParser() p1.loadLuaTable("t2_in.txt") # p1.dumpLuaTable("t2_out.txt") p2.loadDict(p1.dumpDict()) p2.dumpLuaTable("t2_out.txt") p3.loadLuaTable("t2_out.txt") print(p1.dump()) print(p2.dump()) print(p3.dump()) d = p3.dumpDict() print(d) # print(d["root"], d[1]) print("-" * 100)
def test3(): parser = PyLuaTblParser() parser.loadLuaTable("t3.txt") pprint.pprint(parser.dumpDict()) print(parser.dump())
def test2(): """ 组合用例 """ p1 = PyLuaTblParser() p2 = PyLuaTblParser() p3 = PyLuaTblParser() p1.loadLuaTable("t2_in.txt") # p1.dumpLuaTable("t2_out.txt") p2.loadDict(p1.dumpDict()) p2.dumpLuaTable("t2_out.txt") p3.loadLuaTable("t2_in.txt") print(p1.dump()) print(p2.dump()) print(p3.dump())
#coding=utf-8 from PyLuaTblParser import PyLuaTblParser a1 = PyLuaTblParser() a2 = PyLuaTblParser() a3 = PyLuaTblParser() file_path = "case.txt" a1.loadLuaTable(file_path) #print a1.table d1 = a1.dumpDict() #print d1 a2.loadDict(d1) #print a2.table a2.dumpLuaTable("dumpfile.txt") a3.loadLuaTable("dumpfile.txt") #print a3.table d2 = a3.dumpDict() print "d2:\n", d2['root'] d2['root'] = True print d2['root']
from PyLuaTblParser import PyLuaTblParser # basic test a1 = PyLuaTblParser() a2 = PyLuaTblParser() a3 = PyLuaTblParser() test_str = '{array = {65,23,5,},dict = {mixed = {43,54.33,false,9,string = "value",},array = {3,6,4,},string = "value",},}' a1.load(test_str) d1 = a1.dumpDict() file_path = 'table.lua' a2.loadDict(d1) a2.dumpLuaTable(file_path) a3.loadLuaTable(file_path) d3 = a3.dumpDict() print a1.dump() print a2.dump() print a3.dump() # test_1.lua test_1 = PyLuaTblParser() test_1.loadLuaTable('test_1.lua') print test_1.dump() # test_2.lua test_2 = PyLuaTblParser() test_2.loadLuaTable('test_2.lua') print test_2.dump()