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
return x
def maybe_chr(x):
return chr(x)
+ def maybe_ord(x):
+ return ord(x)
def round_py2_compat(what):
import dns.ipv4
import dns.ipv6
+from ._compat import maybe_ord
# We assume that AF_INET is always defined.
@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
import dns.exception
import dns.ipv4
import dns.ipv6
+import dns.inet
# for convenience
aton4 = dns.ipv4.inet_aton
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()