1
1
# pylint: disable=missing-function-docstring,redefined-outer-name
2
2
3
+ import logging
3
4
import os
4
5
from pathlib import Path
5
6
from unittest .mock import patch
8
9
9
10
from uwtools .api import template
10
11
from uwtools .exceptions import UWTemplateRenderError
12
+ from uwtools .logging import log
13
+ from uwtools .tests .support import logged
11
14
12
15
13
16
@fixture
@@ -25,6 +28,14 @@ def kwargs():
25
28
}
26
29
27
30
31
+ @fixture
32
+ def template_file (tmp_path ):
33
+ path = tmp_path / "template.jinja2"
34
+ with open (path , "w" , encoding = "utf-8" ) as f :
35
+ f .write ("roses are {{roses_color}}, violets are {{violets_color}}" )
36
+ return path
37
+
38
+
28
39
def test_render (kwargs ):
29
40
with patch .object (template , "_render" ) as _render :
30
41
template .render (** kwargs )
@@ -51,6 +62,13 @@ def test_render_to_str(kwargs):
51
62
render .assert_called_once_with (** {** kwargs , "output_file" : Path (os .devnull )})
52
63
53
64
65
+ def test_render_values_needed (caplog , template_file ):
66
+ log .setLevel (logging .INFO )
67
+ template .render (input_file = template_file , values_needed = True )
68
+ for var in ("roses_color" , "violets_color" ):
69
+ assert logged (caplog , f" { var } " )
70
+
71
+
54
72
def test_translate ():
55
73
kwargs : dict = {
56
74
"input_file" : "path1" ,
0 commit comments