From 17e7093e4b63a9df1ff717de839c6281dbf55e98 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 15:50:32 -0500 Subject: [PATCH] Started BasicFileStorage tests. test_basic_storage__resolve_filepath() done. Also switched to using assert_raises, which is only sane! --- mediagoblin/tests/test_storage.py | 60 ++++++++++++++++++++++++++----- 1 file 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 . +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 -- 2.25.1