Skip to content

Commit

Permalink
Add additional loader tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
chaseastewart committed Jan 19, 2024
1 parent d2f6afa commit 66d1810
Showing 1 changed file with 53 additions and 13 deletions.
66 changes: 53 additions & 13 deletions tests/test_loaders.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
from json import loads
from typing import Optional
from unittest import TestCase

from liquid import BoundTemplate, Context, Environment, FileExtensionLoader
from liquid.exceptions import TemplateNotFound
from liquid.loaders import BaseLoader
from pytest import raises

from fhir_converter.loaders import ResourceLoader, TemplateSystemLoader
from fhir_converter.loaders import ResourceLoader, TemplateSystemLoader, read_text
from fhir_converter.tags import all_tags, register_tags


Expand Down Expand Up @@ -57,38 +60,45 @@ def test_no_such_search_path(self) -> None:
class TemplateSystemLoaderTest(TestCase):
@staticmethod
def get_rendering_env(
env_cache_size: int = 1, loader_cache_size: int = 1
loader: BaseLoader = FileExtensionLoader(search_path="data/templates/ccda"),
defaults_loader: Optional[BaseLoader] = ResourceLoader(
search_package="fhir_converter.templates.ccda"
),
loader_cache_size: int = 1,
**kwargs
) -> Environment:
env = Environment(
loader=TemplateSystemLoader(
loader=FileExtensionLoader(search_path="data/templates/ccda"),
defaults_loader=ResourceLoader(
search_package="fhir_converter.templates.ccda"
),
loader,
cache_size=loader_cache_size,
defaults_loader=defaults_loader,
),
cache_size=env_cache_size,
**kwargs
)
register_tags(env, all_tags)
return env

def test_load_template(self) -> None:
template = self.get_rendering_env().get_template(name="Pampi.liquid")
template = self.get_rendering_env(defaults_loader=None).get_template(
name="Pampi.liquid"
)
self.assertIsInstance(template, BoundTemplate)

def test_load_template_with_args(self) -> None:
template = self.get_rendering_env().get_template_with_args(name="Pampi.liquid")
template = self.get_rendering_env(defaults_loader=None).get_template_with_args(
name="Pampi.liquid"
)
self.assertIsInstance(template, BoundTemplate)

def test_load_template_with_context(self) -> None:
env = self.get_rendering_env()
env = self.get_rendering_env(defaults_loader=None)
template = env.get_template_with_context(
context=Context(env), name="Pampi.liquid"
)
self.assertIsInstance(template, BoundTemplate)

def test_load_template_without_suffix(self) -> None:
template = self.get_rendering_env().get_template(name="Pampi")
template = self.get_rendering_env(defaults_loader=None).get_template(name="Pampi")
self.assertIsInstance(template, BoundTemplate)

def test_load_default_template(self) -> None:
Expand All @@ -112,6 +122,15 @@ def test_cached_template(self) -> None:
self.assertIsInstance(template, BoundTemplate)
self.assertEqual(template.tree, another.tree)

def test_cached_template_with_globals(self) -> None:
env = self.get_rendering_env()
template = env.get_template(name="Pampi.liquid", globals={"test": "one"})
self.assertEqual({"test": "one"}, template.globals)

another = env.get_template(name="Pampi.liquid", globals={"test": "two"})
self.assertEqual({"test": "two"}, template.globals)
self.assertEqual(template.tree, another.tree)

def test_cached_default_template(self) -> None:
env = self.get_rendering_env()
template = env.get_template(name="CCD.liquid")
Expand All @@ -122,7 +141,7 @@ def test_cached_default_template(self) -> None:
self.assertEqual(template.tree, another.tree)

def test_disable_env_cache_template_cached(self) -> None:
env = self.get_rendering_env(env_cache_size=0)
env = self.get_rendering_env(cache_size=0)
template = env.get_template(name="Pampi.liquid")
self.assertTrue(template.is_up_to_date)

Expand All @@ -131,7 +150,7 @@ def test_disable_env_cache_template_cached(self) -> None:
self.assertEqual(template.tree, another.tree)

def test_disable_template_cache(self) -> None:
env = self.get_rendering_env(env_cache_size=0, loader_cache_size=0)
env = self.get_rendering_env(cache_size=0, loader_cache_size=0)
template = env.get_template(name="Pampi.liquid")
self.assertTrue(template.is_up_to_date)

Expand All @@ -142,3 +161,24 @@ def test_disable_template_cache(self) -> None:
def test_template_not_found(self) -> None:
with raises(TemplateNotFound):
self.get_rendering_env().get_template(name="nosuchthing.liquid")

def test_template_not_found_no_defaults_loader(self) -> None:
with raises(TemplateNotFound):
self.get_rendering_env(defaults_loader=None).get_template(
name="nosuchthing.liquid"
)


class ReadTextTest(TestCase):
def test_read_file_text(self) -> None:
env = Environment(
loader=ResourceLoader(search_package="fhir_converter.templates.ccda")
)
self.assertEqual({"type": "ccda"}, loads(read_text(env, "metadata.json")))

def test_file_not_found(self) -> None:
with raises(TemplateNotFound):
env = Environment(
loader=ResourceLoader(search_package="fhir_converter.templates.ccda")
)
read_text(env, "nosuchthing.json")

0 comments on commit 66d1810

Please sign in to comment.