예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
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()
예제 #4
0
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()))
예제 #5
0
 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
예제 #6
0
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 '-----------------------'
예제 #7
0
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 '-----------------------'
예제 #8
0
#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
예제 #9
0
파일: test.py 프로젝트: nash6/myPy
	#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
예제 #10
0
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())
예제 #11
0
def test3():
    p1 = PyLuaTblParser()
    p2 = PyLuaTblParser()
    p1.loadLuaTable("t3.txt")
    pprint.pprint(p1.dumpDict())
    p1.dumpLuaTable("tmp")
    p2.loadLuaTable("tmp")
    print(p2.dump())
예제 #12
0
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)
예제 #13
0
def test3():
    parser = PyLuaTblParser()
    parser.loadLuaTable("t3.txt")
    pprint.pprint(parser.dumpDict())
    print(parser.dump())
예제 #14
0
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())
예제 #15
0
#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']
예제 #16
0
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()