# Advanced Python Testing 26 min read... This article is mostly for me to process my thoughts but also to pave a path for anyone that wants to follow a similar journey on some more advanced python testing topics. I recently had the opportunity to garbage collect a bunch of common libraries at my company into a new python library and git repository. Marking all the critical path libraries and copyi
unittest.mock モジュールを正しく使って関数を置き換えるというのは以外と難しいもので、Pythonの名前空間について、しっかり把握できてないとうまくいかないことがある。 単純なケースでは、テスト対象のコードが参照している名前で置き換えてやればいい。 例えば import spam def ham(): spam.egg() というモジュール M の ham() をテストするために spam.egg を置き換えるなら def test(): import M with patch("spam.egg"): M.ham() となる。また、 from spam import egg def ham(): egg() のように egg を参照している場合、ham() の内部での egg は M.egg への参照なので def test(): import M with patch("M
tl;dr 作ったもの 知見 requests.get() を mock で置き換える S3 への put_object を moto で置き換える invoke コマンド Travis CI を使って, 複数の Python バージョンでテスト出来るようにする 以上 tl;dr inokara.hateblo.jp 前回の記事の続きというか, 前回, 突貫で作った Python スクリプトを自分なりに作り直してみました. スクリプトを作り直すにあたって, テストを書いたり, その上で Python 3 系の複数のバージョンでテストを Travis CI で回すようにしてみたり, モックを使ったり, 色々と経験出来たので覚書として残しておきたいと思います. 尚, あくまでも「自分なりに」なので, 誤り等あればご指摘頂けると幸いです. 作ったもの github.com 使い方とかは READ
Pythonのargparseモジュールを利用するとPythonスクリプトに渡された引数のチェックを良い感じにやってくれます。自動的にヘルプコマンドも作ってくれたりするので、コマンドラインツールを作るときにはかなり便利です。 今回はargparseによるコマンドライン引数のパースをunittests + Mockでテストしてみました。Pythonのバージョンは2系です。 完成形はこんな感じ↓ import unittest from mock import patch, Mock class ParserError(Exception): pass class ParserTestCase(unittest.TestCase): @patch('argparse.ArgumentParser.error') def test_parse_error(self, arg_error): ar
隣の席の人がテスト強化週間とか抜かしていたので自分もちゃんと理解するために なるべくわかりやすく まとめてみようと思います。 この記事は 2015 tech-yuruyuru アドベントカレンダー - 15日目の記事です。 http://connpass.com/event/22759/ モックって何よ? mockは特定のオブジェクトの代理をしてユニットテストを円滑に進めるためのモジュールです。 python3.3からはビルトインに入りましたが、それ未満のバージョンではインストールが必要です。 以下のようにインストールしてください。 インストールしたmockを使う場合は単に import mock とすればよいのですが ビルトインmockを使う場合は、 from unittest import mock のようにして使うのが一般的です。 以降、この記事では無用な混乱を避けるため、mockの
最近、Mockライブラリ http://www.voidspace.org.uk/python/mock/ を使ってみたのでメモ。 このライブラリは、その性質上、動的にメソッドや属性を作成するケースが多く、普通のPythonライブラリのようにイントロスペクションに頼って使い方を調べるのは難しい。本気で使うならまじめにドキュメントを読み込む必要がある。 関数の置き換え テスト中に呼び出される関数をMockで置き換える例。ここでは、関数 myapp.utils.func1() を置き換える。 from mock import Mock import myapp.utils # myapp.utils.func1 を、常に100を返す関数に置き換える myapp.utils.func1 = Mock(return_value=100) 戻り値が定数でない場合は、Mock()にside_effec
The latest news from Google on open source releases, major projects, events, and outreach programs for early career developers. So you just finished writing a really sweet Python application, and now it's time to do some testing. Or wait, better yet, you're going to write the tests first, then write your application code. It's probably time to pick a mock object framework to make writing tests eas
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く