(fn)
| 322 | """Provide MetaData for a pytest fixture.""" |
| 323 | |
| 324 | def decorate(fn): |
| 325 | def run_ddl(self): |
| 326 | metadata = self.metadata = schema.MetaData() |
| 327 | try: |
| 328 | result = fn(self, metadata) |
| 329 | metadata.create_all(config.db) |
| 330 | # TODO: |
| 331 | # somehow get a per-function dml erase fixture here |
| 332 | yield result |
| 333 | finally: |
| 334 | metadata.drop_all(config.db) |
| 335 | |
| 336 | return config.fixture(scope=ddl)(run_ddl) |
| 337 | |
| 338 | return decorate |
| 339 |