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)
|