mocking.py 840 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. """General mocking utilities"""
  2. # Copyright (c) Jupyter Development Team.
  3. # Distributed under the terms of the Modified BSD License.
  4. import os
  5. import sys
  6. try:
  7. from unittest.mock import patch
  8. except ImportError:
  9. from mock import patch # py2
  10. class MultiPatch(object):
  11. def __init__(self, *patchers):
  12. self.patchers = patchers
  13. def __enter__(self):
  14. for p in self.patchers:
  15. p.start()
  16. def __exit__(self, *args):
  17. for p in self.patchers:
  18. p.stop()
  19. darwin = MultiPatch(
  20. patch.object(os, 'name', 'posix'),
  21. patch.object(sys, 'platform', 'darwin'),
  22. )
  23. linux = MultiPatch(
  24. patch.object(os, 'name', 'posix'),
  25. patch.object(sys, 'platform', 'linux2'),
  26. )
  27. windows = MultiPatch(
  28. patch.object(os, 'name', 'nt'),
  29. patch.object(sys, 'platform', 'win32'),
  30. )