无法使用python套接字实例化正确引发异常

2024-09-29 23:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中实例化套接字时正确引发异常,但无法使其正常工作:

sock.py

import socket

def create_socket():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except OSError:
        return 'OS Error'

test_sock.py

import mock

from sock import create_socket

@mock.patch('socket.socket', side_effect=OSError())
def test_oserror(mock_socket):
    p = create_socket()
    assert p == 'OS Error'

最后我得到了https://pastebin.com/N5wY59RH

我的错误在哪里


Tags: 实例pytestimportosdefcreateerror
1条回答
网友
1楼 · 发布于 2024-09-29 23:29:03

好的,我在这里发现了问题OSError不是字符串。它是异常类,所以您的代码应该是这样的

sock.py

import socket

def create_socket():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind((socket.gethostname(), 1234))
        s.listen(5)
    except OSError:
        return 'OS Error'

test_sock.py

import mock
from sock import create_socket

@mock.patch('socket.socket', side_effect=OSError())
def test_oserror(mock_socket):
    p = create_socket()
    assert p == OSError

相关问题 更多 >

    热门问题