コード例 #1
0
ファイル: test_socket.py プロジェクト: tdraegen/shrapnel
    def test_make_socket_for_ip(self):
        if coro.has_ipv6():
            sock = coro.make_socket_for_ip('2001::1', socket.SOCK_STREAM)
            self.assertEquals(sock.domain, socket.AF_INET6)
            sock = coro.make_socket_for_ip('::', socket.SOCK_STREAM)
            self.assertEquals(sock.domain, socket.AF_INET6)
        else:
            sys.stderr.write('Warning: No IPv6 support; skipping tests\n')

        sock = coro.make_socket_for_ip('1.2.3.4', socket.SOCK_STREAM)
        self.assertEquals(sock.domain, socket.AF_INET)
        sock = coro.make_socket_for_ip('0.0.0.0', socket.SOCK_STREAM)
        self.assertEquals(sock.domain, socket.AF_INET)

        self.assertRaises(ValueError, coro.make_socket_for_ip, '123', 0)
コード例 #2
0
ファイル: test_socket.py プロジェクト: codemac/shrapnel
    def test_make_socket_for_ip(self):
        if coro.has_ipv6():
            sock = coro.make_socket_for_ip('2001::1', socket.SOCK_STREAM)
            self.assertEquals(sock.domain, socket.AF_INET6)
            sock = coro.make_socket_for_ip('::', socket.SOCK_STREAM)
            self.assertEquals(sock.domain, socket.AF_INET6)
        else:
            sys.stderr.write('Warning: No IPv6 support; skipping tests\n')

        sock = coro.make_socket_for_ip('1.2.3.4', socket.SOCK_STREAM)
        self.assertEquals(sock.domain, socket.AF_INET)
        sock = coro.make_socket_for_ip('0.0.0.0', socket.SOCK_STREAM)
        self.assertEquals(sock.domain, socket.AF_INET)

        self.assertRaises(ValueError, coro.make_socket_for_ip, '123', 0)
コード例 #3
0
ファイル: test_socket.py プロジェクト: tdraegen/shrapnel
    def serve(self, address):
        self.s = coro.make_socket_for_ip(address, socket.SOCK_STREAM)
        self.s.bind((address, 0))
        self.bound_ip, self.port = self.s.getsockname()
        self.s.set_reuse_addr()
        self.s.listen(5)

        s, addr = self.s.accept()
        session = TestSession(s, addr)
        coro.spawn(session.run)
        self.accepted_from = s.getsockname()[0]
コード例 #4
0
ファイル: test_socket.py プロジェクト: codemac/shrapnel
    def serve(self, address):
        self.s = coro.make_socket_for_ip(address, socket.SOCK_STREAM)
        self.s.bind((address, 0))
        self.bound_ip, self.port = self.s.getsockname()
        self.s.set_reuse_addr()
        self.s.listen(5)

        s, addr = self.s.accept()
        session = TestSession(s, addr)
        coro.spawn(session.run)
        self.accepted_from = s.getsockname()[0]
コード例 #5
0
ファイル: test_socket.py プロジェクト: tdraegen/shrapnel
    def _test(self, address):
        server = TestServer()
        server_thread = coro.spawn(server.serve, address)
        # Give the server a chance to start.
        coro.yield_slice()
        self.assertEqual(server.bound_ip, address)

        sock = coro.make_socket_for_ip(address, socket.SOCK_STREAM)
        sock.connect((address, server.port))

        coro.yield_slice()

        # Double checking that everyone thinks they're connected
        # to the same peer
        self.assertEqual(server.accepted_from, address)
        self.assertEqual(sock.getpeername()[0], server.accepted_from)

        self.do_work(sock)
コード例 #6
0
ファイル: test_socket.py プロジェクト: codemac/shrapnel
    def _test(self, address):
        server = TestServer()
        server_thread = coro.spawn(server.serve, address)
        # Give the server a chance to start.
        coro.yield_slice()
        self.assertEqual(server.bound_ip, address)

        sock = coro.make_socket_for_ip(address, socket.SOCK_STREAM)
        sock.connect((address, server.port))

        coro.yield_slice()

        # Double checking that everyone thinks they're connected
        # to the same peer
        self.assertEqual(server.accepted_from, address)
        self.assertEqual(sock.getpeername()[0], server.accepted_from)

        self.do_work(sock)