Commit 6538ad4
test(nodes): add unit tests for prompt template engine and polish
Adds 57 unit tests covering the custom template engine (stdlib-only, no
Jinja2) in nodes/test/test_prompt_template_engine.py — variable
substitution, dotted paths, missing variables, builtins, context-over-
builtin overrides, if/elif/else, nested blocks, for loops, escape
sequences, malformed/unclosed tags, HTML pass-through, and ReDoS /
recursion safety. The test module loads template_engine.py directly via
importlib so it does not trigger the depends-based package init.
Also addresses outstanding review feedback on PR #573:
- Mark the node as experimental in services.json (per asclearuc)
- Add an explicit {{question}} substitution test case in services.json
(per CodeRabbit)
- Add missing return type annotations on _resolve (Any), _at_top_level
(bool), _handle_if (int) and _handle_for (int) to satisfy Ruff ANN202
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent c5b406c commit 6538ad4
3 files changed
Lines changed: 419 additions & 5 deletions
File tree
- nodes
- src/nodes/prompt_template
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
145 | 159 | | |
146 | 160 | | |
147 | 161 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
67 | | - | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
169 | 170 | | |
170 | 171 | | |
171 | 172 | | |
172 | | - | |
| 173 | + | |
173 | 174 | | |
174 | 175 | | |
175 | 176 | | |
| |||
188 | 189 | | |
189 | 190 | | |
190 | 191 | | |
191 | | - | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
192 | 198 | | |
193 | 199 | | |
194 | 200 | | |
| |||
225 | 231 | | |
226 | 232 | | |
227 | 233 | | |
228 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
229 | 240 | | |
230 | 241 | | |
231 | 242 | | |
| |||
0 commit comments