TypeError: unicode argument expected, got 'str'
admin
2023-07-31 21:20:07
0

今天在做mock模块中的patch()方法只在运行测试的上下文中才替换对象时,使用了io.StringIO结果出现报错:

TypeError: unicode argument expected, got 'str'


经确认是字符集的问题,考虑使用io.BytesIO解决了此问题


具体代码如下:

# -*- coding:utf-8 -*-

#
# from io import StringIO
from io import BytesIO
from unittest import TestCase
from mock import patch
import url

class TestUrlPrint(TestCase):
    def test_url_gets_to_stdout(self):
        protocol = 'http'
        host = 'www'
        domain = 'example.com'
        expected_url = '{}://{}.{}\n'.format(protocol, host, domain)

        with patch('sys.stdout', new=BytesIO()) as fake_out:
            url.urlprint(protocol, host, domain)
            self.assertEqual(fake_out.getvalue(), expected_url)


python2.7的字符转换问题,需要多加注意。

相关内容

热门资讯

五角大楼内部调查泄露:美军空袭... 当地时间2月28日上午11点刚过,伊朗7岁男孩马坎·纳西里的妈妈阿西耶·拉希内贾德接到一通电话。打来...
广西一动物园多只动物下落不明,... 7月7日,广西贵港一村民在村内发现一只斑马。经当地动物园确认,这是园内走失的怀孕斑马。据悉,受台风强...
中国核潜艇发射战略导弹,韩外交... 当地时间7月7日,韩国媒体韩联社援引多方消息源报道称,中方周一向太平洋试射潜射战略导弹前,已通过韩国...
创维电视啪的一声突然黑屏 1、可能是电视机外部插头突然松动,电视电源突然断开,无法供电造成黑屏。2、可能是由于电源插入大功率电...
创维电视机的二维码怎么显示出来 可以打开创维电视遥控器,里面有个智能电视,看到logo后点进去就是二维码了;还有就是把电视机的主页打...
空调E5故障代码怎么回事 原因可能是空调开启了相应的低压工作保护,要确保正常的空调工作电压范围。原因也可能是空调室内机和室外机...
美的空调出现e5是什么故障怎么... 1、一般定速挂机显示E5表示:T1传感器故障——找专业的维修人员对t1传感器进行一个维修或者是更换。...
创维电视的二维码在哪里? 创维电视的二维码在哪里?1、首先打开电视的主页,调出界面,可以看到最左边进行扫码,下载安装电视派。2...
伊朗议长:霸凌与敲诈的时代已经... 伊朗伊斯兰议会议长卡利巴夫8日在社交媒体上发文,强烈谴责美国“严重违反”伊美谅解备忘录。卡利巴夫说,...
致癌油风暴延烧,台民意机构通过... 海峡导报综合报道 台湾“中联油脂”大豆油致癌物超标,民进党当局政策反复、一度盖牌引发民怨,台民意机构...