def test_negative(test_input, expected, exp_message): with pytest.raises(expected, match=exp_message): pairs(test_input)
def test_smoke(): assert pairs(1, 9)
def test_results_uniqueness_2(): assert pairs(5, 5, 5, 5).count((5, 5)) == 1
def test_results_uniqueness(): assert (9, 1) not in pairs(1, 9, 5, 5, 3, 1)
def test_positive(test_input, expected): assert expected in pairs(*test_input)
def test_type(): assert type(pairs(1, 9)) == list
if __name__ == '__main__': parser = argparse.ArgumentParser( description="App can return a Fibonacci sequence with given length " "or find numbers pair with specified sum") subparsers = parser.add_subparsers(help='sub-command help') parser_fib = subparsers.add_parser( 'fib', help='Print given number of members of Fibonacci sequence') parser_fib.add_argument("number", help="The required number of sequence members", type=int) parser_fib.set_defaults(which='fib') parser_pairs = subparsers.add_parser( 'pairs', help='Return pairs with specified sum.') parser_pairs.set_defaults(which='pairs') parser_pairs.add_argument('-n', '--numbers', nargs="+", type=int, help='List of numbers to check.') args = parser.parse_args() if args.which == 'fib': fib(args.number) elif args.which == 'pairs': pairs(*args.numbers)