我正在尝试在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
我的错误在哪里?
答案 0 :(得分:0)
好的,我在这里找到了问题。 myDict = {0: {'apple': 2, 'orange': 5, 'banana': 4}, 1: {'apple': 2, 'orange': 1, 'banana': 7}}
arr = [list(d.values()) for d in myDict.values()]
#[[2, 5, 4], [2, 1, 7]]
不是字符串。这是异常类,所以您的代码应该像这样……
sock.py
OSError
test_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'