46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
# mypy: always-true=inet_pton
|
|
|
|
try:
|
|
from socket import inet_pton
|
|
except ImportError:
|
|
inet_pton = None # type: ignore[assignment]
|
|
|
|
if not inet_pton:
|
|
import socket
|
|
|
|
from .common import HyperlinkTestCase
|
|
from .._socket import inet_pton
|
|
|
|
class TestSocket(HyperlinkTestCase):
|
|
def test_inet_pton_ipv4_valid(self):
|
|
# type: () -> None
|
|
data = inet_pton(socket.AF_INET, "127.0.0.1")
|
|
assert isinstance(data, bytes)
|
|
|
|
def test_inet_pton_ipv4_bogus(self):
|
|
# type: () -> None
|
|
with self.assertRaises(socket.error):
|
|
inet_pton(socket.AF_INET, "blah")
|
|
|
|
def test_inet_pton_ipv6_valid(self):
|
|
# type: () -> None
|
|
data = inet_pton(socket.AF_INET6, "::1")
|
|
assert isinstance(data, bytes)
|
|
|
|
def test_inet_pton_ipv6_bogus(self):
|
|
# type: () -> None
|
|
with self.assertRaises(socket.error):
|
|
inet_pton(socket.AF_INET6, "blah")
|
|
|
|
def test_inet_pton_bogus_family(self):
|
|
# type: () -> None
|
|
# Find an integer not associated with a known address family
|
|
i = int(socket.AF_INET6)
|
|
while True:
|
|
if i != socket.AF_INET and i != socket.AF_INET6:
|
|
break
|
|
i += 100
|
|
|
|
with self.assertRaises(socket.error):
|
|
inet_pton(i, "127.0.0.1")
|