Kill MultiRemoteStaticDirect... nobody was really using it anyway
[mediagoblin.git] / mediagoblin / tests / test_workbench.py
index f08a26a058e83836eca0c7bc859efa5ce6b219fe..04a74653d5e9230f4a3febce0f40d512ec051ee6 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
@@ -17,7 +17,6 @@
 import os
 import tempfile
 
-from nose.tools import assert_raises
 
 from mediagoblin import workbench
 from mediagoblin.tests.test_storage import get_tmp_filestorage
@@ -30,31 +29,31 @@ class TestWorkbench(object):
 
     def test_create_workbench(self):
         workbench = self.workbench_manager.create_workbench()
-        assert os.path.isdir(workbench)
-        assert workbench.startswith(self.workbench_manager.base_workbench_dir)
+        assert os.path.isdir(workbench.dir)
+        assert workbench.dir.startswith(self.workbench_manager.base_workbench_dir)
+
+    def test_joinpath(self):
+        this_workbench = self.workbench_manager.create_workbench()
+        tmpname = this_workbench.joinpath('temp.txt')
+        assert tmpname == os.path.join(this_workbench.dir, 'temp.txt')
+        this_workbench.destroy_self()
 
     def test_destroy_workbench(self):
         # kill a workbench
         this_workbench = self.workbench_manager.create_workbench()
-        tmpfile = file(os.path.join(this_workbench, 'temp.txt'), 'w')
+        tmpfile_name = this_workbench.joinpath('temp.txt')
+        tmpfile = file(tmpfile_name, 'w')
         with tmpfile:
             tmpfile.write('lollerskates')
 
-        assert os.path.exists(os.path.join(this_workbench, 'temp.txt'))
-
-        self.workbench_manager.destroy_workbench(this_workbench)
-        assert not os.path.exists(os.path.join(this_workbench, 'temp.txt'))
-        assert not os.path.exists(this_workbench)
-
-        # make sure we can't kill other stuff though
-        dont_kill_this = tempfile.mkdtemp()
+        assert os.path.exists(tmpfile_name)
 
-        assert_raises(
-            workbench.WorkbenchOutsideScope,
-            self.workbench_manager.destroy_workbench,
-            dont_kill_this)
+        wb_dir = this_workbench.dir
+        this_workbench.destroy_self()
+        assert not os.path.exists(tmpfile_name)
+        assert not os.path.exists(wb_dir)
 
-    def test_possibly_localize_file(self):
+    def test_localized_file(self):
         tmpdir, this_storage = get_tmp_filestorage()
         this_workbench = self.workbench_manager.create_workbench()
         
@@ -65,9 +64,7 @@ class TestWorkbench(object):
             our_file.write('Our file')
 
         # with a local file storage
-        filename, copied = self.workbench_manager.possibly_localize_file(
-            this_workbench, this_storage, filepath)
-        assert copied is False
+        filename = this_workbench.localized_file(this_storage, filepath)
         assert filename == os.path.join(
             tmpdir, 'dir1/dir2/ourfile.txt')
 
@@ -78,20 +75,19 @@ class TestWorkbench(object):
         with this_storage.get_file(filepath, 'w') as our_file:
             our_file.write('Our file')
 
-        filename, copied = self.workbench_manager.possibly_localize_file(
-            this_workbench, this_storage, filepath)
+        filename = this_workbench.localized_file(this_storage, filepath)
         assert filename == os.path.join(
-            this_workbench, 'ourfile.txt')
+            this_workbench.dir, 'ourfile.txt')
         
         # fake remote file storage, filename_if_copying set
-        filename, copied = self.workbench_manager.possibly_localize_file(
-            this_workbench, this_storage, filepath, 'thisfile')
+        filename = this_workbench.localized_file(
+            this_storage, filepath, 'thisfile')
         assert filename == os.path.join(
-            this_workbench, 'thisfile.txt')
+            this_workbench.dir, 'thisfile.txt')
 
         # fake remote file storage, filename_if_copying set,
         # keep_extension_if_copying set to false
-        filename, copied = self.workbench_manager.possibly_localize_file(
-            this_workbench, this_storage, filepath, 'thisfile.text', False)
+        filename = this_workbench.localized_file(
+            this_storage, filepath, 'thisfile.text', False)
         assert filename == os.path.join(
-            this_workbench, 'thisfile.text')
+            this_workbench.dir, 'thisfile.text')