Commit 6d83e28f authored by Jason R. Coombs's avatar Jason R. Coombs

Prefer the amazing monkeypatch fixture from pytest to bespoke inline implementations.

parent 2e3b0c3f
...@@ -9,7 +9,6 @@ import os ...@@ -9,7 +9,6 @@ import os
import tempfile import tempfile
import site import site
import contextlib import contextlib
import functools
import tarfile import tarfile
import logging import logging
import itertools import itertools
...@@ -41,26 +40,6 @@ from . import contexts ...@@ -41,26 +40,6 @@ from . import contexts
from .textwrap import DALS from .textwrap import DALS
def _mock_removing_patcher(obj, attr, newval):
def decorator(fn):
@functools.wraps(fn)
def wrapper(*args, **kwargs):
setattr(obj, attr, newval)
try:
return fn(*args, **kwargs)
finally:
delattr(obj, attr)
return wrapper
return decorator
def magic_patch_object(obj, attr, newval):
if hasattr(obj, attr):
return mock.patch.object(obj, attr, newval)
else:
return _mock_removing_patcher(obj, attr, newval)
class FakeDist(object): class FakeDist(object):
def get_entry_map(self, group): def get_entry_map(self, group):
if group != 'console_scripts': if group != 'console_scripts':
...@@ -139,20 +118,18 @@ class TestEasyInstallTest: ...@@ -139,20 +118,18 @@ class TestEasyInstallTest:
with pytest.raises(distutils.errors.DistutilsError): with pytest.raises(distutils.errors.DistutilsError):
cmd.cant_write_to_target() cmd.cant_write_to_target()
@magic_patch_object(site, 'getsitepackages', lambda: ['/setuptools/test/site-packages']) def test_all_site_dirs(self, monkeypatch):
def test_all_site_dirs(self): """
get_site_dirs should always return site dirs reported by
site.getsitepackages.
"""
mock_gsp = lambda: ['/setuptools/test/site-packages']
monkeypatch.setattr(site, 'getsitepackages', mock_gsp)
assert '/setuptools/test/site-packages' in ei.get_site_dirs() assert '/setuptools/test/site-packages' in ei.get_site_dirs()
def test_all_site_dirs_works_without_getsitepackages(self): def test_all_site_dirs_works_without_getsitepackages(self, monkeypatch):
getsitepackages_old = None monkeypatch.delattr(site, 'getsitepackages', raising=False)
if hasattr(site, 'getsitepackages'): assert ei.get_site_dirs()
getsitepackages_old = site.getsitepackages
del site.getsitepackages
try:
assert ei.get_site_dirs()
finally:
if getsitepackages_old is not None:
site.getsitepackages = getsitepackages_old
class TestPTHFileWriter: class TestPTHFileWriter:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment