]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
dns.inet.is_multicast() was broken in python 3 by
authorBob Halley <halley@dnspython.org>
Mon, 26 Dec 2016 20:31:53 +0000 (12:31 -0800)
committerBob Halley <halley@dnspython.org>
Mon, 26 Dec 2016 20:31:53 +0000 (12:31 -0800)
the python2-python3 merge.
[#224]

dns/_compat.py
dns/inet.py
tests/test_ntoaaton.py

index e78b2883efe5a867605e602e04302611c23f6afb..5c9f15e4900e513f2c6f897bfb1efd5e86ddd587 100644 (file)
@@ -21,6 +21,8 @@ if sys.version_info > (3,):
         return x.encode()
     def maybe_chr(x):
         return x
+    def maybe_ord(x):
+        return x
 else:
     text_type = unicode  # pylint: disable=unicode-builtin, undefined-variable
     binary_type = str
@@ -34,6 +36,8 @@ else:
         return x
     def maybe_chr(x):
         return chr(x)
+    def maybe_ord(x):
+        return ord(x)
 
 
 def round_py2_compat(what):
index 73490a9d733b77dfd3e98f7811c04f4e016ec941..a8ff38da5b6a7944c3728807b7693781b7792dbb 100644 (file)
@@ -20,6 +20,7 @@ import socket
 import dns.ipv4
 import dns.ipv6
 
+from ._compat import maybe_ord
 
 # We assume that AF_INET is always defined.
 
@@ -101,11 +102,11 @@ def is_multicast(text):
     @rtype: bool
     """
     try:
-        first = ord(dns.ipv4.inet_aton(text)[0])
+        first = maybe_ord(dns.ipv4.inet_aton(text)[0])
         return first >= 224 and first <= 239
     except Exception:
         try:
-            first = ord(dns.ipv6.inet_aton(text)[0])
+            first = maybe_ord(dns.ipv6.inet_aton(text)[0])
             return first == 255
         except Exception:
             raise ValueError
index d6e8bedfce9de0b62ffc9528ea4cf4e3886f51d3..05fb95a8df475ece01fae75dc8b78d930b96c1dc 100644 (file)
@@ -24,6 +24,7 @@ import binascii
 import dns.exception
 import dns.ipv4
 import dns.ipv6
+import dns.inet
 
 # for convenience
 aton4 = dns.ipv4.inet_aton
@@ -214,5 +215,19 @@ class NtoAAtoNTestCase(unittest.TestCase):
         self.failUnless(dns.ipv6.is_mapped(aton6(t2)))
         self.failIf(dns.ipv6.is_mapped(aton6(t3)))
 
+    def test_is_multicast(self):
+        t1 = '223.0.0.1'
+        t2 = '240.0.0.1'
+        t3 = '224.0.0.1'
+        t4 = '239.0.0.1'
+        t5 = 'fe00::1'
+        t6 = 'ff00::1'
+        self.failIf(dns.inet.is_multicast(t1))
+        self.failIf(dns.inet.is_multicast(t2))
+        self.failUnless(dns.inet.is_multicast(t3))
+        self.failUnless(dns.inet.is_multicast(t4))
+        self.failIf(dns.inet.is_multicast(t5))
+        self.failUnless(dns.inet.is_multicast(t6))
+
 if __name__ == '__main__':
     unittest.main()