AtCoderですべてテストを通ったら自動で提出する
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 こちらの記事で、AtCoderの提出コードを自動テストするツールを作成した話をしました。 <a href="http://www.smartbowwow.com/2018/09/atcoder.html">Atcoderで使えるコード自動テストツールを作った</a> コマンド一つで、指定した問題の全サンプルをスクレイピングしてきて、それぞれのケースについて正しい出力が得られているかをチェックします。 スクレイピングする際にログイン機能が必要になるのですが、そこらへんを作っていると 「自動提出もsessionを使えば、data渡してpostする処理だし一緒じゃん!つくろ」 となったので勢いで作りました。 ### サンプル サンプルは以下になります。 ```python:submit.py import requests from bs4 import BeautifulSoup import sys import config import os.path # パラメータセット args = sys.argv level = args[1] round = int(args[2]) prob = args[3] LOGIN_URL = "https://beta.atcoder.jp/login" task_screen_name = "{}{:03d}_{}".format(level, round, prob) CPP_ID = 3003 source_path = "{level_camel}/{level}{round:03d}/{level}{round:03d}{prob_camel}.cpp".format( level_camel=level.upper(), level=level, round=round, prob_camel=prob.upper()) if os.path.exists(source_path):