/usr/local/lib64/python3.6/site-packages/pandas/tests
NameSizeModeActions
api/-0755rm
arithmetic/-0755rm
arrays/-0755rm
base/-0755rm
computation/-0755rm
config/-0755rm
dtypes/-0755rm
extension/-0755rm
frame/-0755rm
generic/-0755rm
groupby/-0755rm
indexes/-0755rm
indexing/-0755rm
internals/-0755rm
io/-0755rm
plotting/-0755rm
reductions/-0755rm
resample/-0755rm
reshape/-0755rm
scalar/-0755rm
series/-0755rm
tools/-0755rm
tseries/-0755rm
tslibs/-0755rm
util/-0755rm
window/-0755rm
__pycache__/-0755rm
test_aggregation.py27720644editdlrm
test_algos.py825740644editdlrm
test_common.py44470644editdlrm
test_downstream.py51630644editdlrm
test_errors.py16780644editdlrm
test_expressions.py140230644editdlrm
test_join.py92960644editdlrm
test_lib.py79580644editdlrm
test_multilevel.py657260644editdlrm
test_nanops.py378470644editdlrm
test_optional_dependency.py15180644editdlrm
test_register_accessor.py23510644editdlrm
test_sorting.py177860644editdlrm
test_strings.py1337660644editdlrm
test_take.py168750644editdlrm
__init__.py00644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/pandas/tests/test_register_accessor.py (2351B)
import contextlib import pytest import pandas as pd import pandas._testing as tm @contextlib.contextmanager def ensure_removed(obj, attr): """Ensure that an attribute added to 'obj' during the test is removed when we're done """ try: yield finally: try: delattr(obj, attr) except AttributeError: pass obj._accessors.discard(attr) class MyAccessor: def __init__(self, obj): self.obj = obj self.item = "item" @property def prop(self): return self.item def method(self): return self.item @pytest.mark.parametrize( "obj, registrar", [ (pd.Series, pd.api.extensions.register_series_accessor), (pd.DataFrame, pd.api.extensions.register_dataframe_accessor), (pd.Index, pd.api.extensions.register_index_accessor), ], ) def test_register(obj, registrar): with ensure_removed(obj, "mine"): before = set(dir(obj)) registrar("mine")(MyAccessor) o = obj([]) if obj is not pd.Series else obj([], dtype=object) assert o.mine.prop == "item" after = set(dir(obj)) assert (before ^ after) == {"mine"} assert "mine" in obj._accessors def test_accessor_works(): with ensure_removed(pd.Series, "mine"): pd.api.extensions.register_series_accessor("mine")(MyAccessor) s = pd.Series([1, 2]) assert s.mine.obj is s assert s.mine.prop == "item" assert s.mine.method() == "item" def test_overwrite_warns(): # Need to restore mean mean = pd.Series.mean try: with tm.assert_produces_warning(UserWarning) as w: pd.api.extensions.register_series_accessor("mean")(MyAccessor) s = pd.Series([1, 2]) assert s.mean.prop == "item" msg = str(w[0].message) assert "mean" in msg assert "MyAccessor" in msg assert "Series" in msg finally: pd.Series.mean = mean def test_raises_attribute_error(): with ensure_removed(pd.Series, "bad"): @pd.api.extensions.register_series_accessor("bad") class Bad: def __init__(self, data): raise AttributeError("whoops") with pytest.raises(AttributeError, match="whoops"): pd.Series([], dtype=object).bad