TypeError: unicode argument expected, got 'str'

简介:

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

wKioL1i347HC-pKgAABSS5Hc9jM703.png


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


具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- 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的字符转换问题,需要多加注意。



本文转自 许大树 51CTO博客,原文链接:http://blog.51cto.com/abelxu/1902730,如需转载请自行联系原作者

相关文章
|
Cloud Native Java 编译器
Java生态系统的进化:从JDK 1.0到今天
Java生态系统的进化:从JDK 1.0到今天
variable `xxx' has initializer but incomplete type的解决方法
variable `xxx' has initializer but incomplete type的解决方法
673 0
|
10月前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
283 3
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
897 1
|
11月前
|
机器学习/深度学习 人工智能 算法
基于YOLOV10的反光衣头盔佩戴实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv10的反光衣头盔佩戴实时检测系统,使用4409张工业场景图片训练,能检测未穿反光衣、穿反光衣、未佩戴头盔、佩戴头盔四种情况,确保工人安全。系统支持更换背景标题、模型选择、图片视频检测等功能,基于Python和Pyside6开发。
595 1
基于YOLOV10的反光衣头盔佩戴实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
11月前
|
Java
让星星⭐月亮告诉你,Java异常分类[Throwable(Error/Exception(RuntimeException/其他异常)) 检查时异常 非检查时异常]
本文深入解析了Java异常处理机制,重点介绍了`Throwable`类及其子类`Error`和`Exception`,并通过实例代码、流程图和表格详细解释了异常的分类、区别及处理方法,帮助读者掌握异常处理的关键技巧,提升程序的稳定性和健壮性。
250 1
|
测试技术
iozone如何进行分布式性能测试
iozone的一个特性就是可以进行分布式测试,对分布式存储系统进行测试
604 0
|
Rust IDE 安全
30天拿下Rust之环境搭建
Rust是一门注重安全与速度的现代系统级编程语言,凭借其独特的内存安全保证和卓越性能,在系统编程、WebAssembly等领域崭露头角。本文引导您完成Rust开发环境搭建,包括通过Rustup安装Rust及其工具链,并介绍如何使用Cargo——Rust的包管理和构建工具。此外,还推荐了几款支持Rust的集成开发环境(IDE),如RustRover、IntelliJ IDEA/CLion及VSCode等。最后,通过创建并运行一个简单的“Hello, world!”程序,让您亲身体验Rust编程的魅力。
344 6
|
监控 安全 Shell
清除阿里云服务器挖矿病毒总结
监控发现`top`命令显示`xmrig`进程占满CPU,确认服务器遭挖矿病毒感染。通过`thistory`追溯到病毒执行步骤,包括下载恶意脚本、设置定时任务等。处理方案包括:清理异常定时任务并修复权限;查找并删除挖矿相关文件;识别并终止可疑`sh`进程;加强SSH安全,如修改端口、清除密钥、限制IP访问等,以彻底清除病毒并加固系统安全。
1536 2
|
存储 安全 Docker
直接停掉docker后镜像都没了
7月更文挑战第12天
1637 7