Started BasicFileStorage tests. test_basic_storage__resolve_filepath() done.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 10 Apr 2011 20:50:32 +0000 (15:50 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 10 Apr 2011 20:50:32 +0000 (15:50 -0500)
Also switched to using assert_raises, which is only sane!

mediagoblin/tests/test_storage.py

index cdcddf098130f7f91e9cf08ad3f535a175b8ace2..a30ca149fbb9f515af25c84dffa6e704145649e0 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
+import os
+import tempfile
+
+from nose.tools import assert_raises
+
 from mediagoblin import storage
 
 
@@ -31,11 +36,50 @@ def test_clean_listy_filepath():
     assert storage.clean_listy_filepath(
         ['../../../etc/', 'passwd']) == expected
 
-    try:
-        storage.clean_listy_filepath(
-            ['../../', 'linooks.jpg'])
-    except storage.InvalidFilepath:
-        # Yes, this error should be raise
-        pass
-    else:
-        assert "success" == "failboat"
+    assert_raises(
+        storage.InvalidFilepath,
+        storage.clean_listy_filepath,
+        ['../../', 'linooks.jpg'])
+
+
+##########################
+# Basic file storage tests
+##########################
+
+def get_tmp_filestorage(mount_url=None):
+    tmpdir = tempfile.mkdtemp()
+    this_storage = storage.BasicFileStorage(tmpdir, mount_url)
+    return tmpdir, this_storage
+
+
+def test_basic_storage__resolve_filepath():
+    tmpdir, this_storage = get_tmp_filestorage()
+
+    result = this_storage._resolve_filepath(['dir1', 'dir2', 'filename.jpg'])
+    assert result == os.path.join(
+        tmpdir, 'dir1/dir2/filename.jpg')
+
+    result = this_storage._resolve_filepath(['../../etc/', 'passwd'])
+    assert result == os.path.join(
+        tmpdir, 'etc/passwd')
+
+    assert_raises(
+        storage.InvalidFilepath,
+        this_storage._resolve_filepath,
+        ['../../', 'etc', 'passwd'])
+
+
+def test_basic_storage_file_exists():
+    pass
+
+
+def test_basic_storage_get_file():
+    pass
+
+
+def test_basic_storage_delete_file():
+    pass
+
+
+def test_basic_storage_url_for_file():
+    pass