| 155 | |
| 156 | |
| 157 | def td_snippet(file: pathlib.Path) -> str: |
| 158 | with open(file) as f: |
| 159 | examples = yaml.load(f, Loader=yaml.Loader) |
| 160 | snippet: list[str] = [] |
| 161 | for example in examples: |
| 162 | if "test_depends_on" in example: |
| 163 | snippet.append(td_snippet(LOCATION / example["test_depends_on"])) |
| 164 | if ( |
| 165 | not "code" in example |
| 166 | or not example.get("testable", True) |
| 167 | or "syntax" in example.get("name", "") |
| 168 | ): |
| 169 | continue |
| 170 | if "test_setup" in example: |
| 171 | snippet.append(example["test_setup"]) |
| 172 | snippet.extend( |
| 173 | td_query( |
| 174 | example["code"], |
| 175 | ( |
| 176 | (example.get("test_results") or example.get("results")) |
| 177 | if example.get("testable_results", True) |
| 178 | else None |
| 179 | ), |
| 180 | example.get("test_replacements", {}), |
| 181 | ) |
| 182 | ) |
| 183 | return "\n".join(snippet).strip() |
| 184 | |
| 185 | |
| 186 | def workflow_default(c: Composition, parser: WorkflowArgumentParser) -> None: |