Skip to content

Commit

Permalink
renderers: test empty values
Browse files Browse the repository at this point in the history
  • Loading branch information
pared committed Apr 25, 2022
1 parent 7e6acf4 commit 6192375
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 19 deletions.
10 changes: 6 additions & 4 deletions src/dvc_render/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import abc
from pathlib import Path
from typing import TYPE_CHECKING, Dict, Iterable, Union
from typing import TYPE_CHECKING, Iterable, List, Union

if TYPE_CHECKING:
from os import PathLike
Expand All @@ -19,9 +19,11 @@ class Renderer(abc.ABC):

EXTENSIONS: Iterable[str] = {}

def __init__(self, datapoints: Dict, name: str, **properties):
self.datapoints = datapoints
self.name = name
def __init__(
self, datapoints: List = None, name: str = None, **properties
):
self.datapoints = datapoints or []
self.name = name or ""
self.properties = properties

@abc.abstractmethod
Expand Down
4 changes: 2 additions & 2 deletions src/dvc_render/vega.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from copy import deepcopy
from typing import Dict, List, Optional
from typing import List, Optional

from .base import Renderer
from .exceptions import DvcRenderException
Expand Down Expand Up @@ -32,7 +32,7 @@ class VegaRenderer(Renderer):

EXTENSIONS = {".yml", ".yaml", ".json", ".csv", ".tsv"}

def __init__(self, datapoints: Dict, name: str, **properties):
def __init__(self, datapoints: List, name: str, **properties):
super().__init__(datapoints, name, **properties)
self.template = get_template(
self.properties.get("template", None),
Expand Down
33 changes: 21 additions & 12 deletions tests/test_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,27 @@ def test_matches(extension, matches):
assert ImageRenderer.matches(filename, {}) == matches


def test_render(tmp_dir):
@pytest.mark.parametrize(
"datapoints,filename,expected_parts",
[
(
[
{
"filename": "file.jpg",
"rev": "workspace",
"src": "workspace_file.jpg",
}
],
"file.jpg",
["<p>file.jpg</p>", '<img src="workspace_file.jpg">'],
),
(None, None, []),
],
)
def test_render(datapoints, filename, expected_parts, tmp_dir):
tmp_dir.gen("workspace_file.jpg", b"content")

datapoints = [
{
"filename": "file.jpg",
"rev": "workspace",
"src": "workspace_file.jpg",
}
]

html = ImageRenderer(datapoints, "file.jpg").generate_html()
html = ImageRenderer(datapoints, filename).generate_html()

assert "<p>file.jpg</p>" in html
assert '<img src="workspace_file.jpg">' in html
for part in expected_parts:
assert part in html
12 changes: 11 additions & 1 deletion tests/test_vega.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,17 @@
from dvc_render.vega import BadTemplateError, VegaRenderer
from dvc_render.vega_templates import NoFieldInDataError, Template

# pylint: disable=missing-function-docstring
# pylint: disable=missing-function-docstring, C1803


def test_init_empty():
renderer = VegaRenderer(None, None)

assert renderer.datapoints == []
assert renderer.name == ""
assert renderer.properties == {}

renderer.partial_html()


def test_choose_axes():
Expand Down

0 comments on commit 6192375

Please sign in to comment.