Проблемы с Unicode при использовании io.StringIO для имитации файла

Я использую объект io.StringIO для имитации файла в модуле -тест на класс. Проблема в том, что этот класс, похоже, ожидает, что все строки будут по умолчанию в формате Unicode, но встроенная str не возвращает строки в формате Unicode:

>>> 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. Есть ли более элегантное решение этой проблемы?

9
задан Ivo van der Wijk 20 September 2010 в 08:55
поделиться