summaryrefslogtreecommitdiffstats
path: root/netaddr/tests/ip/test_socket_module_fallback.py
diff options
context:
space:
mode:
Diffstat (limited to 'netaddr/tests/ip/test_socket_module_fallback.py')
-rw-r--r--netaddr/tests/ip/test_socket_module_fallback.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/netaddr/tests/ip/test_socket_module_fallback.py b/netaddr/tests/ip/test_socket_module_fallback.py
new file mode 100644
index 0000000..3174972
--- /dev/null
+++ b/netaddr/tests/ip/test_socket_module_fallback.py
@@ -0,0 +1,37 @@
+import pytest
+
+from netaddr.fbsocket import (inet_ntop, inet_pton, inet_ntoa, AF_INET6)
+
+
+@pytest.mark.parametrize(('actual', 'expected'), [
+ ('0:0:0:0:0:0:0:0', '::'),
+ ('0:0:0:0:0:0:0:A', '::a'),
+ ('A:0:0:0:0:0:0:0', 'a::'),
+ ('A:0:A:0:0:0:0:0', 'a:0:a::'),
+ ('A:0:0:0:0:0:0:A', 'a::a'),
+ ('0:A:0:0:0:0:0:A', '0:a::a'),
+ ('A:0:A:0:0:0:0:A', 'a:0:a::a'),
+ ('0:0:0:A:0:0:0:A', '::a:0:0:0:a'),
+ ('0:0:0:0:A:0:0:A', '::a:0:0:a'),
+ ('A:0:0:0:0:A:0:A', 'a::a:0:a'),
+ ('A:0:0:A:0:0:A:0', 'a::a:0:0:a:0'),
+ ('A:0:A:0:A:0:A:0', 'a:0:a:0:a:0:a:0'),
+ ('0:A:0:A:0:A:0:A', '0:a:0:a:0:a:0:a'),
+ ('1080:0:0:0:8:800:200C:417A', '1080::8:800:200c:417a'),
+ ('FEDC:BA98:7654:3210:FEDC:BA98:7654:3210', 'fedc:ba98:7654:3210:fedc:ba98:7654:3210'),
+])
+def test_inet_ntop_and_inet_pton_ipv6_conversion(actual, expected):
+ assert inet_ntop(AF_INET6, inet_pton(AF_INET6, actual)) == expected
+
+
+def test_inet_ntoa_ipv4_exceptions():
+ with pytest.raises(TypeError):
+ inet_ntoa(1)
+
+ with pytest.raises(ValueError):
+ inet_ntoa('\x00')
+
+
+def test_inet_pton_ipv6_exceptions():
+ with pytest.raises(ValueError):
+ inet_pton(AF_INET6, '::0x07f')