diff options
Diffstat (limited to 'mediagoblin/tests/test_storage.py')
-rw-r--r-- | mediagoblin/tests/test_storage.py | 60 |
1 files changed, 52 insertions, 8 deletions
diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index cdcddf09..a30ca149 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -15,6 +15,11 @@ # 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 |