123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- from io import StringIO
- import pytest
- import pandas as pd
- pytest.importorskip("tabulate")
- def test_simple():
- buf = StringIO()
- df = pd.DataFrame([1, 2, 3])
- df.to_markdown(buf=buf)
- result = buf.getvalue()
- assert (
- result == "| | 0 |\n|---:|----:|\n| 0 | 1 |\n| 1 | 2 |\n| 2 | 3 |"
- )
- def test_empty_frame():
- buf = StringIO()
- df = pd.DataFrame({"id": [], "first_name": [], "last_name": []}).set_index("id")
- df.to_markdown(buf=buf)
- result = buf.getvalue()
- assert result == (
- "| id | first_name | last_name |\n"
- "|------|--------------|-------------|"
- )
- def test_other_tablefmt():
- buf = StringIO()
- df = pd.DataFrame([1, 2, 3])
- df.to_markdown(buf=buf, tablefmt="jira")
- result = buf.getvalue()
- assert result == "|| || 0 ||\n| 0 | 1 |\n| 1 | 2 |\n| 2 | 3 |"
- def test_other_headers():
- buf = StringIO()
- df = pd.DataFrame([1, 2, 3])
- df.to_markdown(buf=buf, headers=["foo", "bar"])
- result = buf.getvalue()
- assert result == (
- "| foo | bar |\n|------:|------:|\n| 0 "
- "| 1 |\n| 1 | 2 |\n| 2 | 3 |"
- )
- def test_series():
- buf = StringIO()
- s = pd.Series([1, 2, 3], name="foo")
- s.to_markdown(buf=buf)
- result = buf.getvalue()
- assert result == (
- "| | foo |\n|---:|------:|\n| 0 | 1 "
- "|\n| 1 | 2 |\n| 2 | 3 |"
- )
- def test_no_buf():
- df = pd.DataFrame([1, 2, 3])
- result = df.to_markdown()
- assert (
- result == "| | 0 |\n|---:|----:|\n| 0 | 1 |\n| 1 | 2 |\n| 2 | 3 |"
- )
- @pytest.mark.parametrize("index", [True, False])
- def test_index(index):
- # GH 32667
- df = pd.DataFrame([1, 2, 3])
- result = df.to_markdown(index=index)
- if index:
- expected = (
- "| | 0 |\n|---:|----:|\n| 0 | 1 |\n| 1 | 2 |\n| 2 | 3 |"
- )
- else:
- expected = "| 0 |\n|----:|\n| 1 |\n| 2 |\n| 3 |"
- assert result == expected
- def test_showindex_disallowed_in_kwargs():
- # GH 32667; disallowing showindex in kwargs enforced in 2.0
- df = pd.DataFrame([1, 2, 3])
- with pytest.raises(ValueError, match="Pass 'index' instead of 'showindex"):
- df.to_markdown(index=True, showindex=True)
|