Fix test failures when xlsxwriter is not installed
authorDebian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Sun, 21 Apr 2024 12:50:13 +0000 (13:50 +0100)
committerRebecca N. Palmer <rebecca_palmer@zoho.com>
Sun, 21 Apr 2024 12:50:13 +0000 (13:50 +0100)
Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Forwarded: no

Gbp-Pq: Name 2p1_openpyxl_errors.patch

pandas/tests/io/excel/test_openpyxl.py
pandas/tests/io/excel/test_writers.py

index b8d41164792e082e59d58023cb095db1f3051ffc..dc29e3dee6dec6a5b491e85679f47651975760db 100644 (file)
@@ -115,13 +115,13 @@ def test_engine_kwargs_append_invalid(ext):
                 DataFrame(["good"]).to_excel(writer, sheet_name="Sheet2")
 
 
-@pytest.mark.parametrize("data_only, expected", [(True, 0), (False, "=1+1")])
+@pytest.mark.parametrize("data_only, expected", [(True, None), (False, "=1+1")])
 def test_engine_kwargs_append_data_only(ext, data_only, expected):
     # GH 43445
     # tests whether the data_only engine_kwarg actually works well for
     # openpyxl's load_workbook
     with tm.ensure_clean(ext) as f:
-        DataFrame(["=1+1"]).to_excel(f)
+        DataFrame(["=1+1"]).to_excel(f, engine="openpyxl")
         with ExcelWriter(
             f, engine="openpyxl", mode="a", engine_kwargs={"data_only": data_only}
         ) as writer:
index 3ab703ea68519cd3c03ffda1f92ec2712fa97ee7..5171737e831b2115197cc0b6e68c2f55299e363f 100644 (file)
@@ -1308,6 +1308,8 @@ class TestExcelWriterEngineTests:
                     assert isinstance(writer, _XlsxWriter)
                 else:
                     assert isinstance(writer, klass)
+                    # openpyxl raises on closing if no sheets are written
+                    DataFrame().to_excel(writer, sheet_name="Sheet1")
 
     def test_ExcelWriter_dispatch_raises(self):
         with pytest.raises(ValueError, match="No engine"):