読者です 読者をやめる 読者になる 読者になる

PyPI: testing.mysqld と testing.cassandra をリリースしました。

PyPItesting.mysqldtesting.cassandra をリリースしました。
パッケージ名に test と付いている通り、テストに使うモジュールです。
11/21訂正: test というパッケージは python 本体で使われていたので、パッケージ名を testing.* に変更しました。

なにをするもの?

test.mysqld と test.cassandra はテストを実行する際に MySQL (Cassandra) を起動し、
テストが終了したあとに MySQL (Cassandra) を終了するという動きをしてくれるライブラリです。
PerlTest::mysqldPython で実装しなおしたものです。

テストする際にホンモノの MySQL や Cassandra が必要な場合に使えるかもしれません。

なんのためにつくったの?

これまで sqlalchemy + sqlite (オンメモリ) や pycassa 互換 mock ライブラリを使ってテストを実行していたのですが、
あるプログラムをマルチプロセスで動かす必要が出てきたため、これらの mock を使うのが難しくなってしまいました。

そこで実物の MySQL や Cassandra を利用することにしたときに、Perl の Test::mysqld のアイディアを採用することにしました。
Test::mysqld はテストを実行する際に MySQL や Cassandra を新たに立てる方式なので、
あらかじめサービスを立ち上げておく方式と比べるとスキーマや Fixture の状態管理がシンプルになります。
(常に立ち上げておく場合は、スキーマを更新したり、過去のテストで変化した Fixture のロールバックが必要)

便利なの?

ほとんどのケースでは不要だと思います。