Skip to content

Commit 7d72817

Browse files
committed
Add test for Extension array with generic ExtensionType
1 parent d0d4b15 commit 7d72817

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

python/pyarrow/tests/test_extension_type.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -867,11 +867,29 @@ def test_generic_ext_type_equality():
867867
assert not period_type == period_type3
868868

869869

870-
def test_generic_ext_type_pickling():
870+
def test_generic_ext_type_pickling(registered_period_type):
871871
# GH-36038
872-
period_type = PeriodType('D')
873-
period_type_pickled = pickle.loads(pickle.dumps(period_type))
874-
assert period_type == period_type_pickled
872+
for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
873+
period_type, _ = registered_period_type
874+
ser = pickle.dumps(period_type, protocol=proto)
875+
period_type_pickled = pickle.loads(ser)
876+
assert period_type == period_type_pickled
877+
878+
879+
def test_generic_ext_array_pickling(registered_period_type):
880+
for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
881+
period_type, _ = registered_period_type
882+
storage = pa.array([1, 2, 3, 4], pa.int64())
883+
arr = pa.ExtensionArray.from_storage(period_type, storage)
884+
ser = pickle.dumps(arr, protocol=proto)
885+
del storage, arr
886+
arr = pickle.loads(ser)
887+
arr.validate()
888+
assert isinstance(arr, pa.ExtensionArray)
889+
assert arr.type == period_type
890+
assert arr.type.storage_type == pa.int64()
891+
assert arr.storage.type == pa.int64()
892+
assert arr.storage.to_pylist() == [1, 2, 3, 4]
875893

876894

877895
def test_generic_ext_type_register(registered_period_type):

0 commit comments

Comments
 (0)