| | 339 | |
| | 340 | def test_valid_include_directive_include_content(self): |
| | 341 | class WorkingLoader: |
| | 342 | def load_text(self, name): |
| | 343 | if name == 'foo.tmpl': |
| | 344 | return "howdy" |
| | 345 | template = airspeed.Template('Message is: #include ("foo.tmpl")!') |
| | 346 | self.assertEquals('Message is: howdy!', template.merge({}, loader=WorkingLoader())) |
| | 347 | |
| | 348 | def test_parse_directive_gives_error_if_no_loader_provided(self): |
| | 349 | template = airspeed.Template('#parse ("foo.tmpl")') |
| | 350 | self.assertRaises(airspeed.TemplateError, template.merge, {}) |
| | 351 | |
| | 352 | def test_parse_directive_yields_loader_error_if_parsed_content_not_found(self): |
| | 353 | class BrokenLoader: |
| | 354 | def load_template(self, name): |
| | 355 | raise IOError(name) |
| | 356 | template = airspeed.Template('#parse ("foo.tmpl")') |
| | 357 | self.assertRaises(IOError, template.merge, {}, loader=BrokenLoader()) |
| | 358 | |
| | 359 | def test_valid_parse_directive_outputs_parsed_content(self): |
| | 360 | class WorkingLoader: |
| | 361 | def load_template(self, name): |
| | 362 | if name == 'foo.tmpl': |
| | 363 | return airspeed.Template("$message") |
| | 364 | template = airspeed.Template('Message is: #parse ("foo.tmpl")!') |
| | 365 | self.assertEquals('Message is: hola!', template.merge({'message': 'hola'}, loader=WorkingLoader())) |