nose でテスト事前、事後処理する
ナウでヤングな Pythonista はテストは nose を使うみたいなのです。
良くわかりませんがそういうものです。
事前処理と事後処理
DB の初期化とかテストの事前処理や事後処理はないと困っちゃいますが、
nose ではこんな風に書きます。
def setup_func(): # ... def teardown_func(): # ... @with_setup(setup_func, teardown_func) def test(): # ...
デコレータ以外にも色々やり方はあります。
http://somethingaboutorange.com/mrl/projects/nose/0.9.3/
pit と併用して使う
外部の API と連携してるテストなどをやりたい時に
いつも使ってる pit の環境汚したく無いなぁなんて時は
プロファイルを切り変えられるので
それを呼ぶと幸せになります
from nose.tools import with_setup from hatenad import HatenaDiary from pit import Pit __profile__ ='' def setup_func(): global __profile__ __profile__ = Pit.config()['profile'] Pit.switch('test') def teardown_func(): Pit.switch(__profile__) @with_setup(setup_func, teardown_func) def test_Post(): test_conf = Pit.get('hatena.ne.jp',{'require' : {'userid':'Your hatena.ne.jp userid','password':'Your hatena.ne.jp password'}}) # ...
これだけでテストの時だけプロファイルを切りかえられますので
少しだけテストが楽になるかなぁと思います。
注意点としては pit の設定ファイルは共有してるので
テストの途中で違うプログラムが pit を使ってしまうとテスト用のプロファイル見ちゃうので
そこだけ気をつけてくだしあ><