def poetry_main(): addresses = parse_args() from twisted.internet import reactor poems = [] errors = [] def got_poem(poem): traceback.print_stack() os._exit(0) def poem_failed(err): print >> sys.stderr, 'Poem failed:', err errors.append(err) def poem_done(_): if len(poems) + len(errors) == len(addresses): reactor.stop() for address in addresses: host, port = address d = get_poetry(host, port) d.addCallbacks(got_poem, poem_failed) d.addBoth(poem_done) reactor.run() for poem in poems: print poem
def poetry_main(): addresses = parse_args() from twisted.internet import reactor poems = [] errors = [] timeouts = [40, 7, None] def got_poem(poem, address): poems.append(poem) print('Success on downloading poem from {}'.format(address)) poem_done() def poem_failed(err): #stdo = sys.stdout #sys.stdout = sys.stderr print('Poem failed:', err) #sys.stdout = stdo errors.append(err) poem_done() def poem_done(): if len(poems) + len(errors) == len(addresses): reactor.stop() for address, timeout in zip(addresses, timeouts): host, port = address get_poetry(host, port, got_poem, poem_failed, connectionTimeout=timeout) reactor.run() for poem in poems: print(poem)
def poetry_main(): try: addresses = parse_args() except: print("Provide valid arguments.") sys.exit() from twisted.internet import reactor poems = [] def got_poem(poem): poems.append(poem) if len(poems) == len(addresses): reactor.stop() for address in addresses: host, port = address get_poetry(host, port, got_poem) reactor.run() for poem in poems: print(poem)
def test_missing(self): inp = ["-a"] with self.assertRaises(SystemExit) as cm: parse_args(inp) self.assertEqual(cm.exception.code, 2)
def test_many_with_val(self): inp = ["FILE", "-aqf", "PATH"] args = parse_args(inp) self.assertTrue(args.all) self.assertTrue(args.quiet) self.assertEqual(args.feedback, "PATH")
def test_long_form(self): inp = ["FILE", "--graph"] args = parse_args(inp) self.assertTrue(args.graph)
def test_long_form(self): inp = ["FILE", "--checker", "PATH"] args = parse_args(inp) self.assertEqual(args.checker, "PATH")
def test_missing(self): inp = ["FILE"] args = parse_args(inp) self.assertFalse(args.all)
def test_short_form(self): inp = ["FILE", "-a"] args = parse_args(inp) self.assertTrue(args.all)
def test_long_form(self): inp = ["FILE", "--quiet"] args = parse_args(inp) self.assertTrue(args.quiet)
def test_long_form(self): inp = ["FILE", "--verbose"] args = parse_args(inp) self.assertTrue(args.verbose)
def test_short_form(self): inp = ["FILE", "-v"] args = parse_args(inp) self.assertTrue(args.verbose)
def test_wrong_type_float(self): inp = ["FILE", "-i", "10.1"] with self.assertRaises(SystemExit) as cm: parse_args(inp) self.assertEqual(cm.exception.code, 2)
def test_many(self): inp = ["FILE", "-i", "100", "200", "300"] args = parse_args(inp) self.assertEqual(args.input, [100, 200, 300])
def test_exclusive_bi(self): inp = ["FILE", "-b", "PATH", "-i", "100"] with self.assertRaises(SystemExit) as cm: parse_args(inp) self.assertEqual(cm.exception.code, 2)
def test_exclusive_vq(self): inp = ["FILE", "-v", "-q"] with self.assertRaises(SystemExit) as cm: parse_args(inp) self.assertEqual(cm.exception.code, 2)
def test_short_form(self): inp = ["FILE", "-f"] args = parse_args(inp) self.assertEqual(args.feedback, "")
def test_long_form(self): inp = ["FILE", "--all"] args = parse_args(inp) self.assertTrue(args.all)
def test_long_form(self): inp = ["FILE", "--feedback"] args = parse_args(inp) self.assertEqual(args.feedback, "")
def test_short_form(self): inp = ["FILE", "-b", "PATH"] args = parse_args(inp) self.assertEqual(args.batch, "PATH")
def test_with_path(self): inp = ["FILE", "-f", "PATH"] args = parse_args(inp) self.assertEqual(args.feedback, "PATH")