PyPI: testing.mysqld と testing.cassandra をリリースしました。
PyPI に testing.mysqld と testing.cassandra をリリースしました。
パッケージ名に test と付いている通り、テストに使うモジュールです。
11/21訂正: test というパッケージは python 本体で使われていたので、パッケージ名を testing.* に変更しました。
なにをするもの?
test.mysqld と test.cassandra はテストを実行する際に MySQL (Cassandra) を起動し、
テストが終了したあとに MySQL (Cassandra) を終了するという動きをしてくれるライブラリです。
Perl の Test::mysqld を Python で実装しなおしたものです。
テストする際にホンモノの MySQL や Cassandra が必要な場合に使えるかもしれません。
なんのためにつくったの?
これまで sqlalchemy + sqlite (オンメモリ) や pycassa 互換 mock ライブラリを使ってテストを実行していたのですが、
あるプログラムをマルチプロセスで動かす必要が出てきたため、これらの mock を使うのが難しくなってしまいました。
そこで実物の MySQL や Cassandra を利用することにしたときに、Perl の Test::mysqld のアイディアを採用することにしました。
Test::mysqld はテストを実行する際に MySQL や Cassandra を新たに立てる方式なので、
あらかじめサービスを立ち上げておく方式と比べるとスキーマや Fixture の状態管理がシンプルになります。
(常に立ち上げておく場合は、スキーマを更新したり、過去のテストで変化した Fixture のロールバックが必要)
便利なの?
ほとんどのケースでは不要だと思います。