Remove modules from :data:`sys.modules` by name, and reset back again when the test/context returns. Example:: >>> with conftest.reset_modules('celery.result', 'celery.app.base'): ... pass
(*modules)
| 652 | |
| 653 | @contextmanager |
| 654 | def reset_modules(*modules): |
| 655 | class="st">"""Remove modules from :data:`sys.modules` by name, |
| 656 | and reset back again when the test/context returns. |
| 657 | Example:: |
| 658 | >>> with conftest.reset_modules(&class="cm">#x27;celery.resultclass="st">', 'celery.app.base'): |
| 659 | ... pass |
| 660 | class="st">""" |
| 661 | prev = { |
| 662 | k: sys.modules.pop(k) for k in modules if k in sys.modules |
| 663 | } |
| 664 | |
| 665 | try: |
| 666 | for k in modules: |
| 667 | reload(import_module(k)) |
| 668 | yield |
| 669 | finally: |
| 670 | sys.modules.update(prev) |
| 671 | |
| 672 | |
| 673 | def get_logger_handlers(logger): |