def setUpClass(cls): cls.parser = ku.create_parser() cls.tool_name = "ku"
from cStringIO import StringIO except ImportError: from io import StringIO from pycoin.cmds import block, ku, msg, tx DEFAULT_ENV = { "PYCOIN_BTC_PROVIDERS": "blockchain.info blockexplorer.com", "PATH": os.environ.get("PATH") } TOOL_LOOKUP = { "tx": (tx.create_parser(), tx.tx), "ku": (ku.create_parser(), ku.ku), "msg": (msg.create_parser(), msg.msg), "block": (block.create_parser(), block.block) } class ToolTest(unittest.TestCase): def invoke_tool(self, args): tool_name = args[0] parser, main = TOOL_LOOKUP[tool_name] return main(parser.parse_args(args[1:]), parser) def launch_tool(self, cmd_line=None, args=None, env=None): if args is None: args = shlex.split(cmd_line)
with open(p) as f: # allow "#" comments at the beginning of the file while 1: cmd = f.readline()[:-1] if cmd[0] != '#': break expected_output = f.read() test_name = os.path.relpath( p, TESTS_PATH).replace(".", "_").replace("/", "_") l.append((test_name, cmd, expected_output)) return l TOOL_LOOKUP = { "tx" : (tx.create_parser(), tx.tx), "ku" : (ku.create_parser(), lambda args, parser: ku.ku(args)) } class CmdlineTest(ToolTest): def invoke_tool(self, args): tool_name = args[0] if tool_name.endswith(".py"): tool_name = tool_name[:-3] parser, main = TOOL_LOOKUP[tool_name] return main(parser.parse_args(args[1:]), parser) def make_f(cmd, expected_output): def f(self):