aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_plugin.py')
-rw-r--r--tests/test_plugin.py36
1 files changed, 17 insertions, 19 deletions
diff --git a/tests/test_plugin.py b/tests/test_plugin.py
index 396855b0..c4663b9e 100644
--- a/tests/test_plugin.py
+++ b/tests/test_plugin.py
@@ -22,20 +22,19 @@ class LowPlug(object):
class TestModules(object):
def setup_method(self, method):
- # patch out actual cache dir settings with temp dirs
+ self.dir = tempfile.mkdtemp()
+ self.dir2 = tempfile.mkdtemp()
+
+ # force plugin module to use package dir for cache dir by setting
+ # system/user cache dirs to nonexistent paths
self.patcher = mock.patch('pkgcore.plugin.const')
const = self.patcher.start()
- self.dir = tempfile.mkdtemp(prefix='cache-')
- self.cache_dir = pjoin(self.dir, 'mod_testplug')
- os.mkdir(self.cache_dir)
- const.SYSTEM_CACHE_PATH = self.cache_dir
- const.USER_CACHE_PATH = self.cache_dir
+ const.SYSTEM_CACHE_PATH = pjoin(self.dir, 'nonexistent')
+ const.USER_CACHE_PATH = pjoin(self.dir, 'nonexistent')
# Set up some test modules for our use.
- self.dir2 = tempfile.mkdtemp()
- self.dir3 = tempfile.mkdtemp()
- self.packdir = pjoin(self.dir2, 'mod_testplug')
- self.packdir2 = pjoin(self.dir3, 'mod_testplug')
+ self.packdir = pjoin(self.dir, 'mod_testplug')
+ self.packdir2 = pjoin(self.dir2, 'mod_testplug')
os.mkdir(self.packdir)
os.mkdir(self.packdir2)
with open(pjoin(self.packdir, '__init__.py'), 'w') as init:
@@ -84,8 +83,8 @@ class HiddenPlug(object):
pkgcore_plugins = {'plugtest': [HiddenPlug]}
''')
# Append it to the path
- sys.path.insert(0, self.dir3)
sys.path.insert(0, self.dir2)
+ sys.path.insert(0, self.dir)
def teardown_method(self):
# stop mocked patcher
@@ -96,7 +95,6 @@ pkgcore_plugins = {'plugtest': [HiddenPlug]}
# and kill it
shutil.rmtree(self.dir)
shutil.rmtree(self.dir2)
- shutil.rmtree(self.dir3)
# make sure we don't keep the sys.modules entries around
sys.modules.pop('mod_testplug', None)
sys.modules.pop('mod_testplug.plug', None)
@@ -113,13 +111,13 @@ pkgcore_plugins = {'plugtest': [HiddenPlug]}
def _runit(self, method):
plugin._global_cache.clear()
method()
- mtime = os.path.getmtime(pjoin(self.cache_dir, plugin.CACHE_FILENAME))
+ mtime = os.path.getmtime(pjoin(self.packdir, plugin.CACHE_FILENAME))
method()
plugin._global_cache.clear()
method()
method()
assert mtime == \
- os.path.getmtime(pjoin(self.cache_dir, plugin.CACHE_FILENAME))
+ os.path.getmtime(pjoin(self.packdir, plugin.CACHE_FILENAME))
# We cannot write this since it contains an unimportable plugin.
assert not os.path.exists(pjoin(self.packdir2, plugin.CACHE_FILENAME))
@@ -131,7 +129,7 @@ pkgcore_plugins = {'plugtest': [HiddenPlug]}
plugin.get_plugin('plugtest', mod_testplug)
assert 'HighPlug' == \
plugin.get_plugin('plugtest', mod_testplug).__class__.__name__
- with open(pjoin(self.cache_dir, plugin.CACHE_FILENAME)) as f:
+ with open(pjoin(self.packdir, plugin.CACHE_FILENAME)) as f:
lines = f.readlines()
assert len(lines) == 3
assert plugin.CACHE_HEADER + "\n" == lines[0]
@@ -167,7 +165,7 @@ pkgcore_plugins = {'plugtest': [HiddenPlug]}
print('wheeeeee')
import mod_testplug
list(plugin.get_plugins('spork', mod_testplug))
- filename = pjoin(self.cache_dir, plugin.CACHE_FILENAME)
+ filename = pjoin(self.packdir, plugin.CACHE_FILENAME)
cachefile = open(filename, 'a')
try:
cachefile.write('corruption\n')
@@ -181,10 +179,10 @@ pkgcore_plugins = {'plugtest': [HiddenPlug]}
plugin._global_cache.clear()
self._test_plug()
good_mtime = os.path.getmtime(
- pjoin(self.cache_dir, plugin.CACHE_FILENAME))
+ pjoin(self.packdir, plugin.CACHE_FILENAME))
plugin._global_cache.clear()
self._test_plug()
- assert good_mtime == os.path.getmtime(pjoin(self.cache_dir, plugin.CACHE_FILENAME))
+ assert good_mtime == os.path.getmtime(pjoin(self.packdir, plugin.CACHE_FILENAME))
assert good_mtime != corrupt_mtime
def test_rewrite_on_remove(self):
@@ -292,7 +290,7 @@ pkgcore_plugins = {
list(plugin.get_plugins('testplug', mod_testplug))
# Modify the cache.
- filename = pjoin(self.cache_dir, plugin.CACHE_FILENAME)
+ filename = pjoin(self.packdir, plugin.CACHE_FILENAME)
with open(filename) as f:
cache = f.readlines()
cache[0] = 'not really a pkgcore plugin cache\n'