def run_program(args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: if args.version: print('online-judge-tools {}'.format(onlinejudge.__version__)) sys.exit(0) if args.verbose: log.setLevel(log.logging.DEBUG) log.debug('args: %s', str(args)) if args.subcommand in ['download', 'd', 'dl']: download(args) elif args.subcommand in ['login', 'l']: login(args) elif args.subcommand in ['submit', 's']: submit(args) elif args.subcommand in ['test', 't']: test(args) elif args.subcommand in ['test-reactive', 't/r']: test_reactive(args) elif args.subcommand in ['generate-output', 'g/o']: generate_output(args) elif args.subcommand in ['generate-input', 'g/i']: generate_input(args) else: parser.print_help(file=sys.stderr) sys.exit(1)
def test_call_submit_atcoder_invalid_url(self): url = 'https://atcoder.jp/contests/practice/tasks/practice_111' code = '''\ #include <bits/stdc++.h> using namespace std; int main() { int a; cin >> a; int b, c; cin >> b >> c; string s; cin >> s; cout << a + b + c << ' ' << s << endl; return 0; } ''' files = [ { 'path': 'main.cpp', 'data': code }, ] with tests.utils.sandbox(files): with self.assertRaises(requests.exceptions.HTTPError): args = ["submit", '-y', '--no-open', url, 'main.cpp'] args = get_parser().parse_args(args=args) submit(args)