Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
 def test_missing(self):
     inp = ["-a"]
     with self.assertRaises(SystemExit) as cm:
         parse_args(inp)
     self.assertEqual(cm.exception.code, 2)
Пример #5
0
 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")
Пример #6
0
 def test_long_form(self):
     inp = ["FILE", "--graph"]
     args = parse_args(inp)
     self.assertTrue(args.graph)
Пример #7
0
 def test_long_form(self):
     inp = ["FILE", "--checker", "PATH"]
     args = parse_args(inp)
     self.assertEqual(args.checker, "PATH")
Пример #8
0
 def test_missing(self):
     inp = ["FILE"]
     args = parse_args(inp)
     self.assertFalse(args.all)
Пример #9
0
 def test_short_form(self):
     inp = ["FILE", "-a"]
     args = parse_args(inp)
     self.assertTrue(args.all)
Пример #10
0
 def test_long_form(self):
     inp = ["FILE", "--quiet"]
     args = parse_args(inp)
     self.assertTrue(args.quiet)
Пример #11
0
 def test_long_form(self):
     inp = ["FILE", "--verbose"]
     args = parse_args(inp)
     self.assertTrue(args.verbose)
Пример #12
0
 def test_short_form(self):
     inp = ["FILE", "-v"]
     args = parse_args(inp)
     self.assertTrue(args.verbose)
Пример #13
0
 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)
Пример #14
0
 def test_many(self):
     inp = ["FILE", "-i", "100", "200", "300"]
     args = parse_args(inp)
     self.assertEqual(args.input, [100, 200, 300])
Пример #15
0
 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)
Пример #16
0
 def test_exclusive_vq(self):
     inp = ["FILE", "-v", "-q"]
     with self.assertRaises(SystemExit) as cm:
         parse_args(inp)
     self.assertEqual(cm.exception.code, 2)
Пример #17
0
 def test_short_form(self):
     inp = ["FILE", "-f"]
     args = parse_args(inp)
     self.assertEqual(args.feedback, "")
Пример #18
0
 def test_long_form(self):
     inp = ["FILE", "--all"]
     args = parse_args(inp)
     self.assertTrue(args.all)
Пример #19
0
 def test_long_form(self):
     inp = ["FILE", "--feedback"]
     args = parse_args(inp)
     self.assertEqual(args.feedback, "")
Пример #20
0
 def test_short_form(self):
     inp = ["FILE", "-b", "PATH"]
     args = parse_args(inp)
     self.assertEqual(args.batch, "PATH")
Пример #21
0
 def test_with_path(self):
     inp = ["FILE", "-f", "PATH"]
     args = parse_args(inp)
     self.assertEqual(args.feedback, "PATH")