Skip to content

Commit 4069d80

Browse files
committed
test: add test for DataFrame._repr_html_ to validate HTML output structure
1 parent b6bf5fe commit 4069d80

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

python/tests/test_dataframe.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,3 +1452,33 @@ def test_dataframe_repr_html(df) -> None:
14521452
body_lines = [f"<td(.*?)>{v}</td>" for inner in body_data for v in inner]
14531453
body_pattern = "(.*?)".join(body_lines)
14541454
assert len(re.findall(body_pattern, output, re.DOTALL)) == 1
1455+
1456+
1457+
def test_dataframe_repr_html(df):
1458+
"""Test that DataFrame._repr_html_ produces expected HTML output."""
1459+
import re
1460+
1461+
html = df._repr_html_()
1462+
assert html is not None
1463+
1464+
# Create a more flexible pattern that handles values being wrapped in spans
1465+
# This pattern will match the sequence of values 1,4,8,2,5,5,3,6,8 regardless of formatting
1466+
pattern = re.compile(
1467+
r"<td[^>]*?>(?:<span[^>]*?>)?1(?:</span>)?</td>.*?"
1468+
+ r"<td[^>]*?>(?:<span[^>]*?>)?4(?:</span>)?</td>.*?"
1469+
+ r"<td[^>]*?>(?:<span[^>]*?>)?8(?:</span>)?</td>.*?"
1470+
+ r"<td[^>]*?>(?:<span[^>]*?>)?2(?:</span>)?</td>.*?"
1471+
+ r"<td[^>]*?>(?:<span[^>]*?>)?5(?:</span>)?</td>.*?"
1472+
+ r"<td[^>]*?>(?:<span[^>]*?>)?5(?:</span>)?</td>.*?"
1473+
+ r"<td[^>]*?>(?:<span[^>]*?>)?3(?:</span>)?</td>.*?"
1474+
+ r"<td[^>]*?>(?:<span[^>]*?>)?6(?:</span>)?</td>.*?"
1475+
+ r"<td[^>]*?>(?:<span[^>]*?>)?8(?:</span>)?</td>",
1476+
re.DOTALL,
1477+
)
1478+
1479+
# Print debug info if the test fails
1480+
matches = re.findall(pattern, html)
1481+
if not matches:
1482+
print(f"HTML output snippet: {html[:500]}...")
1483+
1484+
assert len(matches) > 0, "Expected pattern of values not found in HTML output"

0 commit comments

Comments
 (0)