|
1 | 1 | # pylint: disable=missing-function-docstring, R0801
|
| 2 | +import os |
| 3 | + |
2 | 4 | import pytest
|
3 | 5 |
|
4 |
| -from dvc_render.html import HTML, PAGE_HTML, MissingPlaceholderError, render_html |
| 6 | +from dvc_render.html import ( |
| 7 | + HTML, |
| 8 | + PAGE_HTML, |
| 9 | + MissingPlaceholderError, |
| 10 | + _order_image_per_step, |
| 11 | + render_html, |
| 12 | +) |
| 13 | +from dvc_render.image import ImageRenderer |
| 14 | +from dvc_render.vega import VegaRenderer |
5 | 15 |
|
6 | 16 | CUSTOM_PAGE_HTML = """<!DOCTYPE html>
|
7 | 17 | <html>
|
@@ -83,6 +93,45 @@ def test_render_html_with_custom_template(mocker, tmp_dir):
|
83 | 93 | assert output_file.read_text() == CUSTOM_PAGE_HTML.format(plot_divs="")
|
84 | 94 |
|
85 | 95 |
|
| 96 | +def test_order_image_per_step(): |
| 97 | + image_per_step_dir = "dvclive" |
| 98 | + other_image_dir = "static" |
| 99 | + |
| 100 | + def create_renderer(filename: str) -> ImageRenderer: |
| 101 | + return ImageRenderer( |
| 102 | + [ |
| 103 | + { |
| 104 | + "filename": filename, |
| 105 | + "rev": "workspace", |
| 106 | + "src": filename, |
| 107 | + } |
| 108 | + ], |
| 109 | + filename, |
| 110 | + ) |
| 111 | + |
| 112 | + r1 = VegaRenderer([], "dvc.yaml::Loss") |
| 113 | + r2 = VegaRenderer([], "dvc.yaml::Accuracy") |
| 114 | + r3 = create_renderer(os.path.join(image_per_step_dir, "0.jpg")) |
| 115 | + r4 = create_renderer(os.path.join(image_per_step_dir, "1.jpg")) |
| 116 | + r5 = create_renderer(os.path.join(image_per_step_dir, "2.jpg")) |
| 117 | + r6 = create_renderer(os.path.join(image_per_step_dir, "10.jpg")) |
| 118 | + r7 = create_renderer(os.path.join(other_image_dir, "a_file.jpg")) |
| 119 | + r8 = create_renderer(os.path.join(other_image_dir, "z_file.jpg")) |
| 120 | + |
| 121 | + renderers = [r7, r3, r5, r8, r1, r6, r4, r2] |
| 122 | + |
| 123 | + assert sorted(renderers, key=_order_image_per_step) == [ |
| 124 | + r1, |
| 125 | + r2, |
| 126 | + r3, |
| 127 | + r4, |
| 128 | + r5, |
| 129 | + r6, |
| 130 | + r7, |
| 131 | + r8, |
| 132 | + ] |
| 133 | + |
| 134 | + |
86 | 135 | def test_no_placeholder():
|
87 | 136 | template = "<head></head><body></body>"
|
88 | 137 |
|
|
0 commit comments