From af20bbff30adc560d7e57dd921345d00cc8b870c Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 13 Mar 2020 09:57:39 +0100 Subject: [PATCH] ARROW-8106: [Python] Ensure extension array conversion tests passes with latest pandas --- python/pyarrow/tests/test_pandas.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/python/pyarrow/tests/test_pandas.py b/python/pyarrow/tests/test_pandas.py index 203146615a3e..e16050821168 100644 --- a/python/pyarrow/tests/test_pandas.py +++ b/python/pyarrow/tests/test_pandas.py @@ -3622,11 +3622,14 @@ def test_conversion_extensiontype_to_extensionarray(monkeypatch): arr = pa.ExtensionArray.from_storage(MyCustomIntegerType(), storage) table = pa.table({'a': arr}) - if LooseVersion(pd.__version__) < "0.26.0.dev": - # ensure pandas Int64Dtype has the protocol method (for older pandas) - monkeypatch.setattr( - pd.Int64Dtype, '__from_arrow__', _Int64Dtype__from_arrow__, - raising=False) + # TODO TEMP use our monkeypatched method for all pandas versions because + # latest pandas release / master fails to cast extension type to int64 + # type (see ARROW-7857) + # if LooseVersion(pd.__version__) < "0.26.0.dev": + # ensure pandas Int64Dtype has the protocol method (for older pandas) + monkeypatch.setattr( + pd.Int64Dtype, '__from_arrow__', _Int64Dtype__from_arrow__, + raising=False) # extension type points to Int64Dtype, which knows how to create a # pandas ExtensionArray @@ -3637,9 +3640,11 @@ def test_conversion_extensiontype_to_extensionarray(monkeypatch): # monkeypatch pandas Int64Dtype to *not* have the protocol method # (remove the version added above and the actual version for recent pandas) - if LooseVersion(pd.__version__) < "0.26.0.dev": - monkeypatch.delattr(pd.Int64Dtype, "__from_arrow__") - else: + # TODO TEMP see above + # if LooseVersion(pd.__version__) < "0.26.0.dev": + monkeypatch.delattr(pd.Int64Dtype, "__from_arrow__") + # else: + if LooseVersion(pd.__version__) >= "0.26.0.dev": monkeypatch.delattr( pd.core.arrays.integer._IntegerDtype, "__from_arrow__", raising=False)