io.StringIO
クラスの単体テストでファイルをモックするためにオブジェクトを使用しています。問題は、このクラスはすべての文字列がデフォルトでユニコードであることを期待しているように見えますが、ビルトインstr
はユニコード文字列を返さないことです。
>>> buffer = io.StringIO()
>>> buffer.write(str((1, 2)))
TypeError: can't write str to text stream
だが
>>> buffer.write(str((1, 2)) + u"")
6
動作します。これは、Unicode文字列との連結によって結果もUnicodeになるためだと思います。この問題に対するより洗練された解決策はありますか?