如何模拟套接字库';python中的recvfrom?

如何模拟套接字库';python中的recvfrom?,python,sockets,unit-testing,mocking,packet-sniffers,Python,Sockets,Unit Testing,Mocking,Packet Sniffers,我有以下python代码(sniffer.py),用于嗅探数据包 import socket def get_packet(): #create an INET, raw socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) #current_interval and conf_interval are read here. where current_interv

我有以下python代码(sniffer.py),用于嗅探数据包

import socket 

def get_packet():

    #create an INET, raw socket
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
    #current_interval and conf_interval are read here. where current_interval is a difference of time.time and the time at which program began. and conf_interval is pre-configured interval
    # receive a packet
    while current_interval < conf_interval:
        pkt = s.recvfrom(65565)
        process(pkt)

if __name__ == '__main__':
    get_packet()
这只是给了我一个模拟对象,我无法访问虚拟的pkt。 我该怎么做


谢谢

sniffer.py
和你写的一模一样吗?在这种情况下,不可能对其进行修补,因为只需导入它就可以在
中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。是否与您编写的完全相同?在这种情况下,不可能对其进行修补,因为只需导入它就可以在
中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。是否与您编写的完全相同?在这种情况下,不可能对其进行修补,因为只需导入它就可以在
中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。
with patch('sniffer.socket.socket.recvfrom') as m_recvfrom:
    m_recvfrom.return_value = dummy_pkt