gh-110196: Fix ipaddress.IPv6Address.__reduce__ (GH-110198)

This commit is contained in:
Tian Gao 2023-10-22 11:50:51 -07:00 committed by GitHub
parent b845a9e145
commit 767f416feb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 0 deletions

View File

@ -1970,6 +1970,9 @@ class IPv6Address(_BaseV6, _BaseAddress):
return False
return self._scope_id == getattr(other, '_scope_id', None)
def __reduce__(self):
return (self.__class__, (str(self),))
@property
def scope_id(self):
"""Identifier of a particular zone of the address's scope.

View File

@ -4,6 +4,7 @@
"""Unittest for ipaddress module."""
import copy
import unittest
import re
import contextlib
@ -542,11 +543,17 @@ class AddressTestCase_v6(BaseTestCase, CommonTestMixin_v6):
def test_pickle(self):
self.pickle_test('2001:db8::')
self.pickle_test('2001:db8::%scope')
def test_weakref(self):
weakref.ref(self.factory('2001:db8::'))
weakref.ref(self.factory('2001:db8::%scope'))
def test_copy(self):
addr = self.factory('2001:db8::%scope')
self.assertEqual(addr, copy.copy(addr))
self.assertEqual(addr, copy.deepcopy(addr))
class NetmaskTestMixin_v4(CommonTestMixin_v4):
"""Input validation on interfaces and networks is very similar"""

View File

@ -0,0 +1 @@
Add ``__reduce__`` method to :class:`IPv6Address` in order to keep ``scope_id``