def test_monsters(): fbs = load('parser-cases/monster_test.fbs') assert fbs.root == 'Monster' assert fbs.file_extension == 'mon' assert fbs.file_identifier == 'MONS' stats = fbs.__fbs_meta__['tables'][2] assert stats._fspec['id1'] == (False, "[string]", []) assert stats.attributes == [["BaseStat"]]
def main(): parser = argparse.ArgumentParser() parser.add_argument("--includes", action='store', nargs='+', help="Directories to search") parser.add_argument("--cpp", type=bool, default=False, help="Generate C++ code") parser.add_argument("--ijava", type=bool, default=False, help="Generate Java interface code") parser.add_argument("--yaml", type=bool, default=False, help="Generate Yaml code") parser.add_argument("--python", type=bool, default=False, help="Generate Python code") # TODO: pass args.sort to parser parser.add_argument("--sort", type=bool, default=False, help="Sort everything alphabetically") args, rest = parser.parse_known_args() for filename in rest: parsed = load(filename, include_dirs=args.includes) if args.cpp: generate_cpp(filename, load(filename)) if args.ijava: generate_ijava(filename, load(filename)) if args.yaml: generate_yaml(filename, load(filename)) if args.python: generate_py(filename, load(filename))
def test_comments(): load('parser-cases/comments.fbs')
def test_thrift2fbs(): fbs = load('parser-cases/thrift2fbs.fbs')
def test_include(): fbs = load('parser-cases/include.fbs', include_dirs=['./parser-cases'])
def test_constants(): fbs = load('parser-cases/constants.fbs')