久しぶりに pytest 触った

pytest プチプラグイン

pytest で shell-doctest を実行したいと聞いたから、パラメーターテストを使った DI でテスト結果だけ調べるプラグインをサンプルで作ってみた。

ちゃんとしたやり方じゃないけど、私が shell-doctest の詳細を知らないので間に合わせで作った。いまのお仕事終わって余裕があれば、ちゃんとしたプラグインを作るかも?

pytest のプラグインは conftest.py に pytest のフックを記述するだけで作成できる。conftest.py はディレクトリ単位で有効になるので、ちょっとした用途にも使いやすい。

お仕事

分からなかったものが分かるようになっていく過程がおもしろい。ここからは納期と自分との戦い。

開発

今日は主に mrjobboto.emr のコードを読んでた。

mrjob もがんばって作ってて、ローカルと EMR と Hadoop クラスターを切り替えて実行できたり、ちょっと便利な機能もいくつかある。けれど、コードはちょっと残念な感じになっていて (一番ダメなのは統合性がない)、、、だから pull request もイシューも積まれちゃってる。悪い方の OSS 的な感じ。

本当は mrjob のみで EMR を扱うアプリを開発しようと思ってたけど、boto で直接ジョブフローを実行した方が効率的なことに気付いたので、mrjob はユーティリティー的に使うことになりそう。

今日のもう1つの収穫は Hive を実際に boto を使って動かせたこと。開発対象のプロトタイプの要件としては Hive スクリプトを実行できるようにしないといけない。ようやくメイン機能の背中が遠くに見えてきた。

但し、私は Hadoop/Hive のパラメーター群を理解できてないから、ユーザーパラメーターとして何が重要か分からない。開発リーダーがその辺りに詳しいから、また明日相談してみよう。