- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这个问题可能真的很愚蠢,但就是这样。以下语句触发特定电子邮件的异常:
File "/Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py", line 104, in body_lines
_, _, body = self.message.as_string().partition("\n\n")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 621: ordinal not in range(128)
如果我在 PDB 下运行并在提示符下手动测试它,没有抛出异常并且 body
设置正确。
> /Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py(105)body_lines()
-> _, _, body = self.message.as_string().partition("\n\n")
(Pdb) _, _, body = self.message.as_string().partition("\n\n")
但是如果我点击下一行,它仍然会抛出异常:
(Pdb) n
UnicodeDecodeError: UnicodeD...ge(128)')
> /Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py(105)body_lines()
-> _, _, body = self.message.as_string().partition("\n\n")
如果我中断该语句,则会在 partition()
调用中抛出异常。
File "/Users/me/tools/maildir-deduplicate/maildir_deduplicate/mail.py", line 106, in body_lines
body = self.message.as_string()
_, _, body = body.partition("\n\n")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 621: ordinal not in range(128)
在 pdb
下运行相同的故事:如果我点击 n
将抛出异常,但如果我输入 _, _, body = body.partition( "\n\n")
在提示符处。
知道是什么原因造成的吗?
最佳答案
我怀疑您的代码中有 from __future__ import unicode_literals
:
测试代码:
#!python2
from __future__ import unicode_literals
body = b'abc\n\ndef\xd7ghi'
_,_,body = body.partition('\n\n')
直接运行时(无pdb):
Traceback (most recent call last):
File "C:\test.py", line 4, in <module>
_,_,body = body.partition('\n\n')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 8: ordinal not in range(128)
在 pdb
中单步执行时,出现 UnicodeDecode 错误:
> c:\test.py(2)<module>()
-> from __future__ import unicode_literals
(Pdb) n
> c:\test.py(3)<module>()
-> body = b'abc\n\ndef\xd7ghi'
(Pdb) n
> c:\test.py(4)<module>()
-> _,_,body = body.partition('\n\n')
(Pdb) n
UnicodeDecodeError: UnicodeD...ge(128)') <<<<<<<<<<<<<<<<
> c:\test.py(4)<module>()
-> _,_,body = body.partition('\n\n')
当手动执行该行时,因为 pdb
不在 __future__
导入下,所以 '\n\n'
是一个字节串:
> c:\test.py(2)<module>()
-> from __future__ import unicode_literals
(Pdb) n
> c:\test.py(3)<module>()
-> body = b'abc\n\ndef\xd7ghi'
(Pdb) n
> c:\test.py(4)<module>()
-> _,_,body = body.partition('\n\n')
(Pdb) _,_,body = body.partition('\n\n') <<<<<<<<<<<<< manual
(Pdb) body <<<<<<<<<<<<< worked!
'def\xd7ghi'
(Pdb) n
UnicodeDecodeError: UnicodeD...ge(128)') <<<<<<<<<<<<< failed!
> c:\test.py(4)<module>()
-> _,_,body = body.partition('\n\n')
关于 python 2 pdb : a statement behaves differently when run at the pdb prompt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50091582/
我有一个行为场景大纲,我需要在其中使用竖线字符 - | 作为示例表中的单元格值。但我不知道如何转义这个字符而不被视为列分隔符。当我尝试使用 \| 序列时,出现了 Malformed table 错误。
这个示例代码有效(我可以在文件中写一些东西): from multiprocessing import Process, Queue queue = Queue() def _printer(self
我开始使用 Python Behave,因为我想做一个 API 测试。 目前我偶然发现了一些甚至可能无效的东西,但问题是:我可以在功能之间共享数据吗?我可以将一些存储在数据库或文件中,但也许有一些“内
我正在尝试使用 Cucumber (Behave) 编写测试。 'given' 语句需要能够带一个可选参数,它用于验证字符串中的内容。 这两种情况的示例功能语法是: Given Verify text
我正在尝试使用 Cucumber (Behave) 编写测试。 'given' 语句需要能够带一个可选参数,它用于验证字符串中的内容。 这两种情况的示例功能语法是: Given Verify text
我有以下测试场景: 检查是否已创建具有特定名称的项目 编辑此项目 验证是否已编辑 作为拆卸过程的一部分删除此项目 下面是实现此目的的示例代码:场景: @fixture.remove_edited_
我们正在使用 Behave BDD 工具来实现 API 的自动化。是否有任何工具可以使用我们的行为案例提供代码覆盖率? 我们尝试使用覆盖模块,它不适用于 Behave。 最佳答案 您可以运行任何具有覆
如何在行为 .feature 文件中将列表或字典之类的对象作为参数传递,以便我可以在我的 python 函数步骤中使用该参数?请参阅下面我试图实现的示例: Feature: Scenario: Giv
我创建了一个自定义错误处理程序来处理失败时的屏幕截图 #error_handler.py def screenshot_handler(func): def func_wrapper(self
我有多个示例的场景大纲,如下所示: Examples: | country | type | number | | Poland | A
body { background: url(http://i.imgur.com/LMYkPk3.jpg) no-repeat center center fixed; backgr
我正在尝试实现一个简单的图像轮播,但我无法阻止图像下降到下一行。这是我的 CSS: #gallery-wrap{margin: 0 auto; overflow: hidden; width: 532
我有一个状态标签,它根据以下内容显示带有彩色边框的消息当前状态。消息本身可能会有所不同(即可以有多个消息到 ERROR),但 CLEAR 状态不同,因为它永远不应该显示任何消息。 使用示例 setSt
我目前正在使用 Behave(Python 的 BDD)并且一直在挖掘源代码以了解 @given、@when 和 @then 正在声明装饰器。 我走得最远的地方是查看 step_registry.py
我有一系列 PHPUnit 测试来验证类“A 类”。 我有另一个类,“B 类”,它扩展了 A 类。 有没有一种好的方法可以在不复制测试代码的情况下测试“B 类通过了 A 类的测试”,或者换句话说“B
如标题所示,我希望在场景大纲之前运行一些特定的配置/环境设置步骤。我知道有 Background 可以针对场景执行此操作,但 Behave 将场景大纲拆分为多个场景,从而为场景大纲中的每个输入运行后台
考虑一个 Behave 场景: When some magic number is generated Then the number should be greater than 5 所以我有一个生
有没有办法告诉 behave 在步骤实现中跳过当前步骤? 类似于: @given("bla bla bla") def step(): skip_current_step() 用例是我想检查是
我正在使用 python-behave 进行 BDD 测试,我必须从命令行传递一个 URL(例如 www.abc.com)。 $behave -u "www.abc.com" 为此,我已阅读 beha
有人可以告诉我如何使用 Python 在 Behave 中再次运行失败的测试吗? 如果失败,我想自动重新运行失败的测试用例。 最佳答案 行为库实际上有一个 RerunFormatter这可以帮助您重新
我是一名优秀的程序员,十分优秀!