はじめに
七尾百合子さん、お誕生日 72日目 おめでとうございます! nikkieです。
毎週水曜のリリース報告エントリです1。
目次
playtest2 v0.0.1 & v0.0.2
新作です!
https://pypi.org/project/playtest2/0.0.2/
ときは2月のDjangoCongress JP 2025の発表準備2に遡ります。
この発表では、FastAPIを使ったWebアプリケーションの設計面(クリーンアーキテクチャ)についても話しました3。
私が採ったアプローチは、先行する発表のFastAPIアプリ4と同じものを、クリーンアーキテクチャを志向したレイヤ分けで再実装するというものでした。
その際、全く同じアプリケーションが作れているかが気になります。
そこで先行する発表のFastAPIアプリに対してE2Eテストを書き、私が実装したクリーンアーキテクチャ版FastAPIアプリも同じテストが通ることを確認しました。
E2Eテストを書くにあたりGaugeを選択し、使い慣れたPythonで実装しました5。
このとき、所属先が公開している uzabase/playtest2 同様の実装をすることに決めました。
DjangoCongress JP 2025の発表時点ではPython版playtest2をライブラリにはしていなかったのですが、他のE2Eでも使いたくなり、ライブラリとして配布することにしました。
ただライブラリにするのは思った以上に大変でしたね。
なんとかライブラリにできたので、FastAPI製アプリをDjango Ninjaで書き換えるときは、不安を退屈に変えて進めました!
playtest2で書く自然言語のテストは以下のようになります。
## GETリクエストが送れる * パス"/"に * メソッド"GET"で * リクエストを送る * レスポンスのボディが * JSONのパス"$.message"に対応する値が * 文字列の"Hello World"である
これはまさしくsimpleで、そのことを語りたいのですが、リリース報告とはズレていくので別の記事をお楽しみに!
今週のリリースは以上です
終わりに
手元で眠らせていたplaytest2のPythonポートをPyPIに公開しました。
gauge-pythonと一緒に使えるようにするのが思っていたよりも大変で、1週間がかりでした。
難所を乗り越えたので移植を進めていくぞ〜(いけ、Devin!OpenHands!)