aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Spaeth <Sebastian@SSpaeth.de>2012-12-12 14:29:49 +0100
committerSebastian Spaeth <Sebastian@SSpaeth.de>2013-01-16 20:19:26 +0100
commit9408938bcca29c385b95beb043c04f6d25e65316 (patch)
tree9117ae1fa673125bdf2fd3e39d810c2d19cafaae
parentbd6fe9774693a241e99138c987f71b80d968bdc3 (diff)
downloadmediagoblin-9408938bcca29c385b95beb043c04f6d25e65316.tar.lz
mediagoblin-9408938bcca29c385b95beb043c04f6d25e65316.tar.xz
mediagoblin-9408938bcca29c385b95beb043c04f6d25e65316.zip
Add @get_workbench test
Test the decorator function and proper cleanup after it's usage. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
-rw-r--r--mediagoblin/tests/test_workbench.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/mediagoblin/tests/test_workbench.py b/mediagoblin/tests/test_workbench.py
index 46fc39e4..9da8eea0 100644
--- a/mediagoblin/tests/test_workbench.py
+++ b/mediagoblin/tests/test_workbench.py
@@ -19,6 +19,8 @@ import tempfile
from mediagoblin import workbench
+from mediagoblin.mg_globals import setup_globals
+from mediagoblin.decorators import get_workbench
from mediagoblin.tests.test_storage import get_tmp_filestorage
@@ -57,7 +59,7 @@ class TestWorkbench(object):
def test_localized_file(self):
tmpdir, this_storage = get_tmp_filestorage()
this_workbench = self.workbench_manager.create()
-
+
# Write a brand new file
filepath = ['dir1', 'dir2', 'ourfile.txt']
@@ -79,7 +81,7 @@ class TestWorkbench(object):
filename = this_workbench.localized_file(this_storage, filepath)
assert filename == os.path.join(
this_workbench.dir, 'ourfile.txt')
-
+
# fake remote file storage, filename_if_copying set
filename = this_workbench.localized_file(
this_storage, filepath, 'thisfile')
@@ -92,3 +94,18 @@ class TestWorkbench(object):
this_storage, filepath, 'thisfile.text', False)
assert filename == os.path.join(
this_workbench.dir, 'thisfile.text')
+
+ def test_workbench_decorator(self):
+ """Test @get_workbench decorator and automatic cleanup"""
+ # The decorator needs mg_globals.workbench_manager
+ setup_globals(workbench_manager=self.workbench_manager)
+
+ @get_workbench
+ def create_it(workbench=None):
+ # workbench dir exists?
+ assert os.path.isdir(workbench.dir)
+ return workbench.dir
+
+ benchdir = create_it()
+ # workbench dir has been cleaned up automatically?
+ assert not os.path.isdir(benchdir)