#36098: TypeError: object of type 'IPv6Address' has no len() when running tests
with GeoDjango
-------------------------------------+-------------------------------------
Reporter: Natalia | Owner: Natalia Bidart
Bidart |
Type: Bug | Status: assigned
Component: GIS | Version: 5.1
Severity: Release | Keywords:
blocker |
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Following the security release for 5.1.5, 5.0.11 and 4.2.18, there seems
to be an issue with the GeoDjango tests:
{{{
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 305, in
validate_ipv4_address
ipaddress.IPv4Address(value)
File "/usr/lib/python3.10/ipaddress.py", line 1305, in __init__
self._ip = self._ip_int_from_string(addr_str)
File "/usr/lib/python3.10/ipaddress.py", line 1192, in
_ip_int_from_string
raise AddressValueError("Expected 4 octets in %r" % ip_str)
ipaddress.AddressValueError: Expected 4 octets in '::ffff:27d:a0d8'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 325, in
validate_ipv46_address
validate_ipv4_address(value)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 307, in
validate_ipv4_address
raise ValidationError(
django.core.exceptions.ValidationError: ['Enter a valid IPv4 address.']
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/tests/gis_tests/test_geoip2.py", line 131, in
test_country
self.assertEqual(g.country(query), self.expected_country)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/contrib/gis/geoip2.py", line 207, in country
response = self._query(query, require_city=False)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/contrib/gis/geoip2.py", line 157, in _query
validate_ipv46_address(query)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 328, in
validate_ipv46_address
validate_ipv6_address(value)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 315, in
validate_ipv6_address
if not is_valid_ipv6_address(value):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/utils/ipv6.py", line 59, in
is_valid_ipv6_address
_ipv6_address_from_str(ip_str)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/utils/ipv6.py", line 10, in
_ipv6_address_from_str
if len(ip_str) > max_length:
TypeError: object of type 'IPv6Address' has no len()
======================================================================
ERROR [0.003s]: test_country_using_city_database
(gis_tests.test_geoip2.GeoIP2Test) (query=IPv6Address('::ffff:27d:a0d8'))
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 305, in
validate_ipv4_address
ipaddress.IPv4Address(value)
File "/usr/lib/python3.10/ipaddress.py", line 1305, in __init__
self._ip = self._ip_int_from_string(addr_str)
File "/usr/lib/python3.10/ipaddress.py", line 1192, in
_ip_int_from_string
raise AddressValueError("Expected 4 octets in %r" % ip_str)
ipaddress.AddressValueError: Expected 4 octets in '::ffff:27d:a0d8'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 325, in
validate_ipv46_address
validate_ipv4_address(value)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 307, in
validate_ipv4_address
raise ValidationError(
django.core.exceptions.ValidationError: ['Enter a valid IPv4 address.']
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/tests/gis_tests/test_geoip2.py", line 145, in
test_country_using_city_database
self.assertEqual(g.country(query), self.expected_country)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/contrib/gis/geoip2.py", line 207, in country
response = self._query(query, require_city=False)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/contrib/gis/geoip2.py", line 157, in _query
validate_ipv46_address(query)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 328, in
validate_ipv46_address
validate_ipv6_address(value)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/core/validators.py", line 315, in
validate_ipv6_address
if not is_valid_ipv6_address(value):
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/utils/ipv6.py", line 59, in
is_valid_ipv6_address
_ipv6_address_from_str(ip_str)
File "/home/jenkins/workspace/pull-requests-
focal/database/mysql_gis/label/focal-
pr/python/python3.10/django/utils/ipv6.py", line 10, in
_ipv6_address_from_str
if len(ip_str) > max_length:
TypeError: object of type 'IPv6Address' has no len()
}}}
--
Ticket URL: <
https://code.djangoproject.com/ticket/36098>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.