From bb08641bedfd52116a3ec4324f0497f1f0c8bdde Mon Sep 17 00:00:00 2001 From: catmar Date: Tue, 6 Dec 2022 17:43:15 -0500 Subject: [PATCH 1/3] added test relating to issue 49602 to ensure ExcelWrtier subclasses don't have public attributes --- pandas/tests/io/excel/test_writers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pandas/tests/io/excel/test_writers.py b/pandas/tests/io/excel/test_writers.py index 60ee8943c9916..ba1d4b62839ed 100644 --- a/pandas/tests/io/excel/test_writers.py +++ b/pandas/tests/io/excel/test_writers.py @@ -30,6 +30,9 @@ register_writer, ) +# added for last test +from pandas.io.excel._util import _writers + @pytest.fixture def path(ext): @@ -1353,3 +1356,12 @@ def test_excelwriter_fspath(self): with tm.ensure_clean("foo.xlsx") as path: with ExcelWriter(path) as writer: assert os.fspath(writer) == str(path) + +# testing that subclasses of ExcelWriter don't have public attributes (issue 49602) + + +@pytest.mark.parametrize("klass", _writers.values()) +def test_subclass_attr(klass): + attrs_base = {name for name in dir(ExcelWriter) if not name.startswith("_")} + attrs_klass = {name for name in dir(klass) if not name.startswith("_")} + assert attrs_base.symmetric_difference(attrs_klass) == set() From c46612adb25266aaa08ac99abae35b32fbc3e197 Mon Sep 17 00:00:00 2001 From: catmar Date: Thu, 8 Dec 2022 13:24:00 -0500 Subject: [PATCH 2/3] revised test for ExceWriter subclasses according to feedback from #50097 --- pandas/tests/io/excel/test_writers.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/tests/io/excel/test_writers.py b/pandas/tests/io/excel/test_writers.py index ba1d4b62839ed..2398fb3ff0638 100644 --- a/pandas/tests/io/excel/test_writers.py +++ b/pandas/tests/io/excel/test_writers.py @@ -30,7 +30,6 @@ register_writer, ) -# added for last test from pandas.io.excel._util import _writers @@ -1357,11 +1356,10 @@ def test_excelwriter_fspath(self): with ExcelWriter(path) as writer: assert os.fspath(writer) == str(path) -# testing that subclasses of ExcelWriter don't have public attributes (issue 49602) - @pytest.mark.parametrize("klass", _writers.values()) def test_subclass_attr(klass): + # testing that subclasses of ExcelWriter don't have public attributes (issue 49602) attrs_base = {name for name in dir(ExcelWriter) if not name.startswith("_")} attrs_klass = {name for name in dir(klass) if not name.startswith("_")} - assert attrs_base.symmetric_difference(attrs_klass) == set() + assert not attrs_base.symmetric_difference(attrs_klass) From be3c5c9a7383d44ff75f19c8740a1b22e5f5360f Mon Sep 17 00:00:00 2001 From: catmar Date: Thu, 8 Dec 2022 16:27:23 -0500 Subject: [PATCH 3/3] same test for ExcelWriter subclass but with pre-commit check (#50097) --- pandas/tests/io/excel/test_writers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/tests/io/excel/test_writers.py b/pandas/tests/io/excel/test_writers.py index 2398fb3ff0638..c4eb778442301 100644 --- a/pandas/tests/io/excel/test_writers.py +++ b/pandas/tests/io/excel/test_writers.py @@ -29,7 +29,6 @@ _XlsxWriter, register_writer, ) - from pandas.io.excel._util import _writers