sách gpt4 ai đã đi

python Nose 和扭曲

In lại 作者:行者123 更新时间:2023-12-01 06:14:51 27 4
mua khóa gpt4 Nike

我正在为一个函数编写一个测试,该函数使用 Twisted 从 url 下载数据(我知道twisted.web.client.getPage,但是这个函数添加了一些额外的功能)。不管怎样,我想使用nosetests,因为我在整个项目中都使用它,并且仅对这个特定的测试使用Twisted Trial 看起来并不合适。所以我想做的是:

from nose.twistedtools import deferred

@deferred()
def test_download(self):
url = 'http://localhost:8000'

d = getPage(url)

def callback(data):
assert len(data) != 0

d.addCallback(callback)
return d

在 localhost:8000 上监听测试服务器。问题是我总是遇到twisted.internet.error.DNSLookupError

DNSLookupError:DNS 查找失败:找不到地址“localhost:8000”:[Errno -5] 没有与主机名关联的地址。

有什么办法可以解决这个问题吗?有人真正使用nose.twistedtools吗?

更新:更完整的回溯

Theo dõi (cuộc gọi gần đây nhất là cuộc gọi cuối cùng):
File "/usr/local/lib/python2.6/dist-packages/nose-0.11.2-py2.6.egg/nose/twistedtools.py", line 138, in errback
failure.raiseException()
File "/usr/local/lib/python2.6/dist-packages/Twisted-9.0.0-py2.6-linux-x86_64.egg/twisted/python/failure.py", line 326, in raiseException
raise self.type, self.value, self.tb
DNSLookupError: DNS lookup failed: address 'localhost:8000' not found: [Errno -5] No address associated with hostname.

更新2

我的错,似乎在 getPage 的实现中,我做了类似的事情:

obj = urlparse.urlparse(url)
netloc = obj.netloc
当我应该传递 netloc.split(':')[0]

时,将 netloc 传递给工厂

1 Câu trả lời

您确定您的 getPage 函数正确解析 URL 吗?错误消息似乎表明它在进行 dns 查找时同时使用主机名和端口。

你说你的getPage类似于twisted.web.client.getPage,但是当我在这个完整的脚本中使用它时,它对我来说效果很好:

#!/usr/bin/env python
from nose.twistedtools import deferred
from twisted.web import client
import nose

@deferred()
def test_download():
url = 'http://localhost:8000'

d = client.getPage(url)

def callback(data):
assert len(data) != 0

d.addCallback(callback)
return d

if __name__ == "__main__":
args = ['--verbosity=2', __file__]
nose.run(argv=args)

在我的主目录中运行一个简单的 http 服务器时:

$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Nose 测试给出以下输出:

.
-----------------------------------------------------------------------------------
Ran 1 test in 0.019s

ĐƯỢC RỒI

关于 python Nose 和扭曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863374/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com