删除 assertDictEqual 中的空格以传递 Flake8
Remove empty spaces in assertDictEqual to pass Flake8
我正在修复代码以通过 Flake8 在 PEP8 中规范化。问题之一是长行,我需要跳过行来完成 Flake8。
这是我的 return,我使用 :
跳过了一行
expected_return = {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires\
a customer or an anonymous user.",
"detail": None,
}
}
在 Django 中使用 from django.test import TestCase
,我的断言是:
self.assertDictEqual(self.deserialize(response.content), expected_return)
我的测试没有通过,因为断言中包含空格:
AssertionError: {u'error': {u'message': None, u'type': u'You are logged as admin. This endpoint [truncated]... != {u'error': {u'message': None, u'type': u'You are logged as admin. This endpoint [truncated]...
{u'error': {u'detail': None,
u'message': None,
- u'type': u'You are logged as admin. This endpoint requires a customer or an anonymous user.'}}
+ u'type': u'You are logged as admin. This endpoint requires a customer or an anonymous user.'}}
我也尝试使用 self.assertMultiLineEqual,但出现了其他错误。
根据 PEP8,您通常使用什么解决方案来跳过行,并且不会在 unittest 中收到此错误?
此致。
Python 支持通过依次出现来连接字符串:
expected_return = {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires "\
"a customer or an anonymous user.",
"detail": None,
}
}
最终结果是一个没有任何额外空格的连接字符串:
"You are logged as admin. This endpoint requires a customer or an anonymous user."
您可以使用 括号 将长文本缩小为,
import unittest
def my_cool_function():
return {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires a customer or an anonymous user.",
"detail": None,
}
}
class TestStringMethods(unittest.TestCase):
def test_flake8_length(self):
result = my_cool_function()
self.assertEqual(
result,
{
"error": {
"message": None,
<b>"type": (
"You are "
"logged as admin. "
"This endpoint "
"requires a customer "
"or an anonymous user."
),</b>
"detail": None,
}
}
)
if __name__ == '__main__':
unittest.main()
我正在修复代码以通过 Flake8 在 PEP8 中规范化。问题之一是长行,我需要跳过行来完成 Flake8。
这是我的 return,我使用 :
跳过了一行 expected_return = {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires\
a customer or an anonymous user.",
"detail": None,
}
}
在 Django 中使用 from django.test import TestCase
,我的断言是:
self.assertDictEqual(self.deserialize(response.content), expected_return)
我的测试没有通过,因为断言中包含空格:
AssertionError: {u'error': {u'message': None, u'type': u'You are logged as admin. This endpoint [truncated]... != {u'error': {u'message': None, u'type': u'You are logged as admin. This endpoint [truncated]...
{u'error': {u'detail': None,
u'message': None,
- u'type': u'You are logged as admin. This endpoint requires a customer or an anonymous user.'}}
+ u'type': u'You are logged as admin. This endpoint requires a customer or an anonymous user.'}}
我也尝试使用 self.assertMultiLineEqual,但出现了其他错误。
根据 PEP8,您通常使用什么解决方案来跳过行,并且不会在 unittest 中收到此错误?
此致。
Python 支持通过依次出现来连接字符串:
expected_return = {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires "\
"a customer or an anonymous user.",
"detail": None,
}
}
最终结果是一个没有任何额外空格的连接字符串:
"You are logged as admin. This endpoint requires a customer or an anonymous user."
您可以使用 括号 将长文本缩小为,
import unittest
def my_cool_function():
return {
"error": {
"message": None,
"type": "You are logged as admin. This endpoint requires a customer or an anonymous user.",
"detail": None,
}
}
class TestStringMethods(unittest.TestCase):
def test_flake8_length(self):
result = my_cool_function()
self.assertEqual(
result,
{
"error": {
"message": None,
<b>"type": (
"You are "
"logged as admin. "
"This endpoint "
"requires a customer "
"or an anonymous user."
),</b>
"detail": None,
}
}
)
if __name__ == '__main__':
unittest.main()