久しぶりに pytest 触った
pytest プチプラグイン
pytest で shell-doctest を実行したいと聞いたから、パラメーターテストを使った DI でテスト結果だけ調べるプラグインをサンプルで作ってみた。
ちゃんとしたやり方じゃないけど、私が shell-doctest の詳細を知らないので間に合わせで作った。いまのお仕事終わって余裕があれば、ちゃんとしたプラグインを作るかも?
pytest のプラグインは conftest.py に pytest のフックを記述するだけで作成できる。conftest.py はディレクトリ単位で有効になるので、ちょっとした用途にも使いやすい。
お仕事
分からなかったものが分かるようになっていく過程がおもしろい。ここからは納期と自分との戦い。
開発
今日は主に mrjob と boto.emr のコードを読んでた。
mrjob もがんばって作ってて、ローカルと EMR と Hadoop クラスターを切り替えて実行できたり、ちょっと便利な機能もいくつかある。けれど、コードはちょっと残念な感じになっていて (一番ダメなのは統合性がない)、、、だから pull request もイシューも積まれちゃってる。悪い方の OSS 的な感じ。
本当は mrjob のみで EMR を扱うアプリを開発しようと思ってたけど、boto で直接ジョブフローを実行した方が効率的なことに気付いたので、mrjob はユーティリティー的に使うことになりそう。
今日のもう1つの収穫は Hive を実際に boto を使って動かせたこと。開発対象のプロトタイプの要件としては Hive スクリプトを実行できるようにしないといけない。ようやくメイン機能の背中が遠くに見えてきた。
但し、私は Hadoop/Hive のパラメーター群を理解できてないから、ユーザーパラメーターとして何が重要か分からない。開発リーダーがその辺りに詳しいから、また明日相談してみよう。