HTTPクライアントとして書いたプログラムから、リクエストが正しく出ているか、またサーバから受け取ったデータを正しく処理できるか、テストコードとして書きたい場合があります。 もちろんlocalhostでHTTPサーバを立ち上げて結合テストを行うことも考えられますが、プロジェクトの進捗として必ずしもHTTPサーバ側のコードが先に完成しているとは限りませんし、HTTPクライアントだけで単体テスト可能になっていた方が嬉しいことが多いはずです。 ここでは偽のソケットを作ってHTTPクライアントが正しく動作しているか確認するコードを書いてみます。 PyUnitなどでテストを書く場合、httplib.HTTP._connection_classを書き換える部分はsetUp/tearDownメソッドに書いて、sendbuf/recvbufはテストメソッドごとに用意するのがいいかもしれません。 # -*-