コード例 #1
0
    def testDefaultTimeout(self):
        # Testing default timeout
        # The default timeout should initially be None
        self.assertEqual(socket.getdefaulttimeout(), None)
        s = socket.socket()
        self.assertEqual(s.gettimeout(), None)
        s.close()

        # Set the default timeout to 10, and see if it propagates
        socket.setdefaulttimeout(10)
        self.assertEqual(socket.getdefaulttimeout(), 10)
        s = socket.socket()
        self.assertEqual(s.gettimeout(), 10)
        s.close()

        # Reset the default timeout to None, and see if it propagates
        socket.setdefaulttimeout(None)
        self.assertEqual(socket.getdefaulttimeout(), None)
        s = socket.socket()
        self.assertEqual(s.gettimeout(), None)
        s.close()

        # Check that setting it to an invalid value raises ValueError
        self.assertRaises(ValueError, socket.setdefaulttimeout, -1)

        # Check that setting it to an invalid type raises TypeError
        self.assertRaises(TypeError, socket.setdefaulttimeout, "spam")
コード例 #2
0
 def testLinuxAbstractNamespace(self):
     address = "\x00python-test-hello\x00\xff"
     s1 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     s1.bind(address)
     s1.listen(1)
     s2 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     s2.connect(s1.getsockname())
     s1.accept()
     self.assertEqual(s1.getsockname(), address)
     self.assertEqual(s2.getpeername(), address)
コード例 #3
0
 def testNewAttributes(self):
     # testing .family, .type and .protocol
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.assertEqual(sock.family, socket.AF_INET)
     self.assertEqual(sock.type, socket.SOCK_STREAM)
     self.assertEqual(sock.proto, 0)
     sock.close()
コード例 #4
0
def init_server():
    s = socket.socket()
    s.settimeout(SOCKET_TIMEOUT)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(address)
    s.listen(5)
    return s
コード例 #5
0
 def __init__(self, server_address, RequestHandlerClass):
     """Constructor.  May be extended, do not override."""
     BaseServer.__init__(self, server_address, RequestHandlerClass)
     self.socket = socket.socket(self.address_family,
                                 self.socket_type)
     self.server_bind()
     self.server_activate()
コード例 #6
0
def geturl(url):
    c = socket.socket()
    ip = socket.gethostbyname(url)
    c.connect((ip, 80))
    print '%s connected' % url
    c.send('GET /\r\n\r\n')
    return c.recv(1024)
コード例 #7
0
 def listener():
     s = socket.socket()
     PORT[0] = test_support.bind_port(s, '', PORT[0])
     s.listen(5)
     listener_ready.set()
     s.accept()
     s = None  # reclaim the socket object, which also closes it
     listener_gone.set()
コード例 #8
0
 def test_connection_refused(self):
     s = socket.socket()
     try:
         s.connect(('127.0.0.1', 81))
     except socket.error as ex:
         code, text = ex.args
         assert code in [111, 61], (code, text)
         assert 'refused' in text.lower(), (code, text)
コード例 #9
0
ファイル: test__hub.py プロジェクト: pecila/python-eventlib
 def test(self):
     try:
         sock = socket.socket()
         api.call_after(0, sock.close)
         sock.connect(('python.org', 81))
     except Exception:
         api.sleep(0)
     else:
         assert False, 'expected an error here'
コード例 #10
0
def testdgram(proto, addr):
    s = socket.socket(proto, socket.SOCK_DGRAM)
    s.sendto(teststring, addr)
    buf = data = receive(s, 100)
    while data and '\n' not in buf:
        data = receive(s, 100)
        buf += data
    verify(buf == teststring)
    s.close()
コード例 #11
0
def make_request():
    #print 'make_request'
    s = socket.socket()
    s.connect(address)
    #print 'make_request - connected'
    res = s.send('hello')
    #print 'make_request - sent %s' % res
    res = s.recv(100)
    assert res == 'bye', ` res `
コード例 #12
0
def teststream(proto, addr):
    s = socket.socket(proto, socket.SOCK_STREAM)
    s.connect(addr)
    s.sendall(teststring)
    buf = data = receive(s, 100)
    while data and '\n' not in buf:
        data = receive(s, 100)
        buf += data
    verify(buf == teststring)
    s.close()
コード例 #13
0
 def test_weakref(self):
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     p = proxy(s)
     self.assertEqual(p.fileno(), s.fileno())
     s.close()
     s = None
     try:
         p.fileno()
     except ReferenceError:
         pass
     else:
         self.fail('Socket proxy still exists')
コード例 #14
0
 def connector():
     listener_ready.wait()
     s = socket.socket()
     s.connect(('localhost', PORT[0]))
     listener_gone.wait()
     try:
         ssl_sock = socket.ssl(s)
     except socket.sslerror:
         pass
     else:
         raise test_support.TestFailed(
             'connecting to closed SSL socket should have failed')
コード例 #15
0
 def testSockName(self):
     # Testing getsockname()
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     sock.bind(("0.0.0.0", PORT + 1))
     name = sock.getsockname()
     # XXX(nnorwitz): http://tinyurl.com/os5jz seems to indicate
     # it reasonable to get the host's addr in addition to 0.0.0.0.
     # At least for eCos.  This is required for the S/390 to pass.
     my_ip_addr = socket.gethostbyname(socket.gethostname())
     self.assert_(name[0] in ("0.0.0.0", my_ip_addr),
                  '%s invalid' % name[0])
     self.assertEqual(name[1], PORT + 1)
コード例 #16
0
    def testRecvfromTimeout(self):
        # Test recvfrom() timeout
        _timeout = 2
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.sock.settimeout(_timeout)
        self.sock.bind(self.addr_local)

        _t1 = time.time()
        self.failUnlessRaises(socket.error, self.sock.recvfrom, 8192)
        _t2 = time.time()

        _delta = abs(_t1 - _t2)
        self.assert_(
            _delta < _timeout + self.fuzz,
            "timeout (%g) is %g seconds more than expected (%g)" %
            (_delta, self.fuzz, _timeout))
コード例 #17
0
    def setup_server_socket(self, delay=DELAY, port=0):
        s = socket.socket()
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('127.0.0.1', port))
        port = s.getsockname()[1]
        s.listen(5)
        s.settimeout(delay * 3)

        def serve():
            conn, addr = s.accept()
            conn.settimeout(delay + 1)
            try:
                hello = conn.makefile().readline()[:-2]
            except socket.timeout:
                return
            conn.sendall('you said %s. ' % hello)
            sleep(delay)
            conn.sendall('BYE')
            sleep(delay)
            #conn.close()

        spawn(serve)
        return port
コード例 #18
0
def test_timeout():
    test_support.requires('network')

    def error_msg(extra_msg):
        print("""\
    WARNING:  an attempt to connect to %r %s, in
    test_timeout.  That may be legitimate, but is not the outcome we hoped
    for.  If this message is seen often, test_timeout should be changed to
    use a more reliable address.""" % (ADDR, extra_msg))

    if test_support.verbose:
        print("test_timeout ...")

    # A service which issues a welcome banner (without need to write
    # anything).
    ADDR = "pop.gmail.com", 995

    s = socket.socket()
    s.settimeout(30.0)
    try:
        s.connect(ADDR)
    except socket.timeout:
        error_msg('timed out')
        return
    except socket.error as exc:  # In case connection is refused.
        if exc.args[0] == errno.ECONNREFUSED:
            error_msg('was refused')
            return
        else:
            raise

    ss = socket.ssl(s)
    # Read part of return welcome banner twice.
    ss.read(1)
    ss.read(1)
    s.close()
コード例 #19
0
 def __init__(self, server_address, RequestHandlerClass):
     """Constructor.  May be extended, do not override."""
     BaseServer.__init__(self, server_address, RequestHandlerClass)
     self.socket = socket.socket(self.address_family, self.socket_type)
     self.server_bind()
     self.server_activate()
コード例 #20
0
 def setUp(self):
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
コード例 #21
0
 def testNameOverflow(self):
     address = "\x00" + "h" * self.UNIX_PATH_MAX
     s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     self.assertRaises(socket.error, s.bind, address)
コード例 #22
0
 def setUp(self):
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.addr_remote = ('www.python.org.', 80)
     self.addr_local = ('127.0.0.1', 25339)
コード例 #23
0
 def testMaxName(self):
     address = "\x00" + "h" * (self.UNIX_PATH_MAX - 1)
     s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     s.bind(address)
     self.assertEqual(s.getsockname(), address)
コード例 #24
0
 def clientSetUp(self):
     self.cli = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
コード例 #25
0
 def testSendAfterClose(self):
     # testing send() after close() with timeout
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     sock.settimeout(1)
     sock.close()
     self.assertRaises(socket.error, sock.send, "spam")
コード例 #26
0
 def testSetSockOpt(self):
     # Testing setsockopt()
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
     reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
     self.failIf(reuse == 0, "failed to set reuse mode")
コード例 #27
0
 def testGetSockOpt(self):
     # Testing getsockopt()
     # We know a socket should start without reuse==0
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
     self.failIf(reuse != 0, "initial mode is reuse")
コード例 #28
0
 def setUp(self):
     self.serv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     self.serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
     global PORT
     PORT = test_support.bind_port(self.serv, HOST, PORT)