|
| 1 | +import pytest |
1 | 2 | import pandas as pd |
2 | 3 | from great_tables import GT |
3 | 4 |
|
4 | 5 | from gt_extras.styling import gt_add_divider |
5 | 6 |
|
6 | 7 |
|
7 | | -def test_gt_add_divider_basic(): |
8 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
9 | | - gt = GT(df) |
| 8 | +@pytest.fixture |
| 9 | +def sample_gt(): |
| 10 | + sample_df = pd.DataFrame({"A": [1, 2], "B": [3, 4], "C": [5, 6]}) |
| 11 | + return GT(sample_df) |
10 | 12 |
|
11 | | - html = gt_add_divider(gt, columns="A").as_raw_html() |
| 13 | + |
| 14 | +def test_gt_add_divider_basic(sample_gt): |
| 15 | + html = gt_add_divider(sample_gt, columns="A").as_raw_html() |
12 | 16 |
|
13 | 17 | assert html.count("border-right:") == 3 |
14 | 18 | assert html.count("2px solid grey") == 3 |
15 | 19 |
|
16 | 20 |
|
17 | | -def test_gt_add_divider_multiple_columns(): |
18 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4], "C": [5, 6]}) |
19 | | - gt = GT(df) |
20 | | - |
21 | | - html = gt_add_divider(gt, columns=["A", "B"]).as_raw_html() |
| 21 | +def test_gt_add_divider_multiple_columns(sample_gt): |
| 22 | + html = gt_add_divider(sample_gt, columns=["A", "B"]).as_raw_html() |
22 | 23 |
|
23 | 24 | assert html.count("border-right: 2px solid grey") == 2 * 3 |
24 | 25 |
|
25 | 26 |
|
26 | | -def test_gt_add_divider_custom_sides(): |
27 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
28 | | - gt = GT(df) |
29 | | - |
30 | | - html = gt_add_divider(gt, columns="A", sides="left").as_raw_html() |
| 27 | +def test_gt_add_divider_custom_sides(sample_gt): |
| 28 | + html = gt_add_divider(sample_gt, columns="A", sides="left").as_raw_html() |
31 | 29 |
|
32 | 30 | assert html.count("border-left:") == 3 |
33 | 31 | assert "border-right:" not in html |
34 | 32 |
|
35 | 33 |
|
36 | | -def test_gt_add_divider_custom_color_and_style(): |
37 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
38 | | - gt = GT(df) |
39 | | - |
40 | | - res = gt_add_divider(gt, columns="A", color="blue", divider_style="dashed") |
| 34 | +def test_gt_add_divider_custom_color_and_style(sample_gt): |
| 35 | + res = gt_add_divider(sample_gt, columns="A", color="blue", divider_style="dashed") |
41 | 36 | html = res.as_raw_html() |
42 | 37 |
|
43 | 38 | assert "border-right: 2px dashed blue;" in html |
44 | 39 | assert "grey" not in html |
45 | 40 |
|
46 | 41 |
|
47 | | -def test_gt_add_divider_custom_weight(): |
48 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
49 | | - gt = GT(df) |
50 | | - |
51 | | - html = gt_add_divider(gt, columns="A", weight=5).as_raw_html() |
| 42 | +def test_gt_add_divider_custom_weight(sample_gt): |
| 43 | + html = gt_add_divider(sample_gt, columns="A", weight=5).as_raw_html() |
52 | 44 |
|
53 | 45 | assert "border-right: 5px solid grey;" in html |
54 | 46 | assert "2px solid grey" not in html |
55 | 47 |
|
56 | 48 |
|
57 | | -def test_gt_add_divider_exclude_labels(): |
58 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
59 | | - gt = GT(df) |
60 | | - |
61 | | - html = gt_add_divider(gt, columns="A", include_labels=False).as_raw_html() |
| 49 | +def test_gt_add_divider_exclude_labels(sample_gt): |
| 50 | + html = gt_add_divider(sample_gt, columns="A", include_labels=False).as_raw_html() |
62 | 51 |
|
63 | 52 | assert html.count("border-right:") == 2 |
64 | 53 |
|
65 | 54 |
|
66 | | -def test_gt_add_divider_multiple_sides(): |
67 | | - df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
68 | | - gt = GT(df) |
69 | | - |
70 | | - html = gt_add_divider(gt, columns="A", sides=["top", "bottom"]).as_raw_html() |
| 55 | +def test_gt_add_divider_multiple_sides(sample_gt): |
| 56 | + html = gt_add_divider(sample_gt, columns="A", sides=["top", "bottom"]).as_raw_html() |
71 | 57 |
|
72 | 58 | assert "border-top:" in html |
73 | 59 | assert "border-bottom:" in html |
|
0 commit comments