From 9e315958d6c9654a988439ae463b1a85cd03bebb Mon Sep 17 00:00:00 2001 From: Paul Vinciguerra Date: Tue, 29 Jan 2019 11:51:44 -0800 Subject: VTL: Fix issue with ipaddress library use under python2. If you pass in a non-unicode 4-byte ipv6 address to ip_address, ipaddress interprets this as an IPv4Address. Under python2, ip_address interprets 'a7::' as a packed ipv4: 97.55.58.58 You can test with: --- import ipaddress try: text_type = unicode except NameError: text_type = str addr = ipaddress.ip_address('a7::') print(addr) --- Change-Id: I06c561e0ab7315869cc89d0bb08c05e743a90982 Signed-off-by: Paul Vinciguerra --- test/hook.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/hook.py') diff --git a/test/hook.py b/test/hook.py index a8f37c7a35b..64fc076c1a0 100644 --- a/test/hook.py +++ b/test/hook.py @@ -6,6 +6,10 @@ from log import RED, single_line_delim, double_line_delim import ipaddress from subprocess import check_output, CalledProcessError from util import check_core_path, get_core_path +try: + text_type = unicode +except NameError: + text_type = str class Hook(object): @@ -32,6 +36,7 @@ class Hook(object): return '{!s} ({!s})'.format(val, ':'.join(['{:02x}'.format( ord(x)) for x in val])) try: + # we don't call test_type(val) because it is a packed value. return '{!s} ({!s})'.format(val, str( ipaddress.ip_address(val))) except ipaddress.AddressValueError: -- cgit 1.2.3-korg