TypeError: unicode argument expected, got 'str'

作者:佚名 上传时间:2019-03-21 版权申诉

今天在做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的字符转换问题,需要多加注意。

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
TypeError: unicode argument expected, got 'str'
今天在做mock模块中的patch()方法只在运行测试的上下文中才替换对象时,使用了io.StringIO结果出现报错:经确认是字符集的问题,考虑使用io.BytesIO解决了此
Catalyst中出现TypeError: backward() got an unexpected keyword argument 'retain_grap
这个错误通常是由于PyTorch版本不兼容性引起的。在Catalyst中,可能使用了与你的PyTorch版本不匹配的一些特性,导致了这个错误。解决方法是升级或降级PyTorch版本,以确保Cataly
Catalyst latest version, PyTorch
Catalyst, PyTorch
2023-12-04 23:39
TypeError int argument must be a string a bytes like object or a number not
在调整网络时遇到一个问题: File "D:\python\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.
PDF
31KB
2020-12-31 07:25
使用Pyramid时遇到TypeError: __init__() got an unexpected keyword argument 'autoload'错
这个问题是由于SQLAlchemy库的版本差异导致的。在较新的版本中,autoload参数被废弃,并不再被支持。解决这个问题的方法是更新你的SQLAlchemy库或者修改你的模型定义。如果你选择更新
SQLAlchemy 1.4.0
Pyramid
2023-12-11 00:36
Django模型定义时出现'Field 'xxx' expected a number but got 'str''错误
这个错误通常是由于在模型的字段定义中出现了错误,导致Django无法正确解析字段的类型。要解决这个问题,首先检查模型中相关字段的定义,确保使用的是正确的字段类型。在Django中,IntegerFie
Django 3.x
Django
2023-11-26 07:41
使用Slim框架时遇到`ValueError: Tensor-typed variable expected, got 'str' instead.`的问题
这个问题通常是由于在定义网络结构时,某些地方的变量类型不匹配引起的。首先,检查网络结构的定义部分,确保所有的输入和输出变量都是tf.Tensor类型。在使用Slim框架时,有时候我们可能会疏忽一些细节
TensorFlow 1.x
Slim
2023-12-11 12:27
解决Python异常TypeError cannot concatenate str and int objects
主要介绍了解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看
PDF
108KB
2020-09-21 11:00
解决Python中报错TypeError must be str not bytes问题
主要介绍了解决Python中报错TypeError: must be str, not bytes问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PDF
126KB
2020-09-21 11:00
解决Python中报错TypeError must be str not bytes问题
在最新版本的Anaconda3中,新加入了一个condabin目录,而新版的anaconda中创建虚拟环境时需要依赖该目录中的文件,所以会报错如下:将该目录加入系统环境变量中,然后进入该目录打开cmd
pdf
137.63 KB
2022-04-04 00:54
使用TensorFlow Slim时遇到`TypeError: Expected Operation, Variable, or Tensor, got nam
这个错误通常是由于在构建模型时,Slim的某些函数期望得到一个Operation、Variable或Tensor对象,但实际上传递了一个字符串(name)。这可能是因为在函数调用中,你传递了一个字符串
TensorFlow Slim 2.x
TensorFlow
2023-12-11 09:50