def testAddArgument_PositionalArgs(self): def cmdProcess(args, sender): ok_(False) lap = LinotArgParser('testcmd', self.parser, cmdProcess, None) lap.add_argument('abc', action='store_true')
def testCmdProcess_Unknown(self): mock = mock_engine() lap = LinotArgParser('testcmd', self.parser, mock.cmdProcess, None) lap.add_argument('-a', action='store_true') self.cmd_server = LineCmdServer(mock, self.parser) def cmdChecker(args, sender, done): ok_(sender) ok_(args.a) cmdChecker.testpass = True def msgChecker(recv, msg, done): ok_(recv == 'sender') ok_('Unknown' in msg) msgChecker.passtime += 1 if msgChecker.passtime == 2: done() cmdChecker.testpass = False msgChecker.passtime = 0 fake_cmd = [ ['sender', None, fakeMessage('some_unknown_cmds')], [True, None, fakeMessage('testcmd -a')], ['sender', None, fakeMessage('some_unknown_cmds')], ] mock.addTest(fake_cmd, cmdChecker, msgChecker) self.cmd_server.start() mock.test_finished.wait(10) ok_(cmdChecker.testpass) self.cmd_server.stop() self.cmd_server.join(10) ok_(self.cmd_server.stopped()) ok_(not self.cmd_server.isAlive())
def testAddArgument_Exclusiveness(self): def cmdProcess(args, sender): assert_equal(args.a is True and args.b is True, False) lap = LinotArgParser('testcmd', self.parser, cmdProcess, None) lap.add_argument('-a', action='store_true') lap.add_argument('-b', action='store_true') with assert_raises(SystemExit) as e: args, unknown_args = self.parser.parse_known_args('testcmd -a -b'.split()) check_str = 'not allowed with' ok_(check_str in e.msg)
def testAddArgument_MultiArgs(self): def cmdProcess(args, sender): ok_(False) def custFunc(value, sender): ok_(value) lap = LinotArgParser('testcmd', self.parser, cmdProcess, None) lap.add_argument('-a', '-b', '-c', action='store_true', func=custFunc) args, unkown_args = self.parser.parse_known_args('testcmd -a'.split()) args, unkown_args = self.parser.parse_known_args('testcmd -b'.split()) args, unkown_args = self.parser.parse_known_args('testcmd -c'.split())
def testAddArgument_Func(self): def cmdProcess(args, sender): if args.b: ok_(True) else: ok_(False) def custFunc(value, sender): ok_(value and sender) lap = LinotArgParser('testcmd', self.parser, cmdProcess, None) lap.add_argument('-a', action='store_true', func=custFunc) lap.add_argument('-b', action='store_true') # default proc args, unknown_args = self.parser.parse_known_args('testcmd -a'.split()) args.proc(args, True) args, unknown_args = self.parser.parse_known_args('testcmd -b'.split()) args.proc(args, False)
def testCmdProcess_Normal(self): mock = mock_engine() lap = LinotArgParser('testcmd', self.parser, mock.cmdProcess, None) lap.add_argument('-a', action='store_true') lap.add_argument('-b', action='store_true') self.cmd_server = LineCmdServer(mock, self.parser) # Test 1 cmd in op_list fake_cmd = [ [True, None, fakeMessage('testcmd -a')] ] def cmdChecker_1(args, sender, done): ok_(args.a) ok_(sender) done() mock.addTest(fake_cmd, cmdChecker_1, None) # Test 2 cmds in op_list fake_cmd = [ [True, None, fakeMessage('testcmd -a')], [True, None, fakeMessage('testcmd -b')], ] def cmdChecker_2(args, sender, done): ok_(args.a or args.b) if args.a: cmdChecker_2.var += 'a' if args.b: cmdChecker_2.var += 'b' if cmdChecker_2.var == 'ab': done() elif len(cmdChecker_2.var) >= 2: ok_(False) cmdChecker_2.var = '' mock.addTest(fake_cmd, cmdChecker_2, None) self.cmd_server.start() mock.test_finished.wait(10) self.cmd_server.stop() self.cmd_server.join(10) ok_(not self.cmd_server.isAlive())
def testPrintHelp(self): def cmdProcess(args, sender): ok_(False) test_str = 'testtesttest' line = MockLine() lap = LinotArgParser('testcmd', self.parser, cmdProcess, line) lap.add_argument('-a', action='store_true', help=test_str) lap.add_argument('-noshow', action='store_true', help=argparse.SUPPRESS) lap.add_argument('-showme', action='store_true', help='') args, unknown_args = self.parser.parse_known_args('testcmd -h'.split()) args.proc(args, 'test_sender') cap_text = line.msg ok_(test_str in cap_text, True) ok_('-nowshow' not in cap_text, True) ok_('-showme' in cap_text, True) ok_('test_sender' == line.recv) # Test help suppress if sender not found (for coverage) args, unknown_args = self.parser.parse_known_args('testcmd -h'.split()) line.msg = None line.recv = None args.proc(args, None) ok_(line.msg is None) ok_(line.recv is None)
def testAddArgument_DestException(self): def cmdProcess(args, sender): pass lap = LinotArgParser('testcmd', self.parser, cmdProcess, None) with assert_raises(ValueError): lap.add_argument('-a', dest='b', action='store_true')