## 5.1.3 What's the Execution Context?

By default, each time testmod finds a docstring to test, it uses a copy of `M`'s globals, so that running tests on a module doesn't change the module's real globals, and so that one test in `M` can't leave behind crumbs that accidentally allow another test to work. This means examples can freely use any names defined at top-level in `M`, and names defined earlier in the docstring being run. It also means that sloppy imports (see below) can cause examples in external docstrings to use globals inappropriate for them.

You can force use of your own dict as the execution context by passing `globs=your_dict` to `testmod()` instead. Presumably this would be a copy of `M.__dict__` merged with the globals from other imported modules.