41 lines
949 B
Python
41 lines
949 B
Python
"""
|
|
Tests for behavior if an author does *not* implement EA methods.
|
|
"""
|
|
import numpy as np
|
|
import pytest
|
|
|
|
import pandas._testing as tm
|
|
from pandas.core.arrays import ExtensionArray
|
|
|
|
|
|
class MyEA(ExtensionArray):
|
|
def __init__(self, values) -> None:
|
|
self._values = values
|
|
|
|
|
|
@pytest.fixture
|
|
def data():
|
|
arr = np.arange(10)
|
|
return MyEA(arr)
|
|
|
|
|
|
class TestExtensionArray:
|
|
def test_errors(self, data, all_arithmetic_operators):
|
|
# invalid ops
|
|
op_name = all_arithmetic_operators
|
|
with pytest.raises(AttributeError):
|
|
getattr(data, op_name)
|
|
|
|
|
|
def test_depr_na_sentinel():
|
|
# GH#46910
|
|
msg = "The `na_sentinel` argument of `MyEA.factorize` is deprecated"
|
|
with tm.assert_produces_warning(DeprecationWarning, match=msg):
|
|
|
|
class MyEA(ExtensionArray):
|
|
def factorize(self, na_sentinel=-1):
|
|
pass
|
|
|
|
with tm.assert_produces_warning(None):
|
|
MyEA()
|