(*names)
| 523 | |
| 524 | |
| 525 | def _module(*names): |
| 526 | prev = {} |
| 527 | |
| 528 | class MockModule(types.ModuleType): |
| 529 | |
| 530 | def __getattr__(self, attr): |
| 531 | setattr(self, attr, Mock()) |
| 532 | return types.ModuleType.__getattribute__(self, attr) |
| 533 | |
| 534 | mods = [] |
| 535 | for name in names: |
| 536 | try: |
| 537 | prev[name] = sys.modules[name] |
| 538 | except KeyError: |
| 539 | pass |
| 540 | mod = sys.modules[name] = MockModule(name) |
| 541 | mods.append(mod) |
| 542 | try: |
| 543 | yield mods |
| 544 | finally: |
| 545 | for name in names: |
| 546 | try: |
| 547 | sys.modules[name] = prev[name] |
| 548 | except KeyError: |
| 549 | try: |
| 550 | del (sys.modules[name]) |
| 551 | except KeyError: |
| 552 | pass |
| 553 | |
| 554 | |
| 555 | class _patching: |
no test coverage detected