示例#1
0
def test_extension_allowed_if_any():
    from pyramid_storage import s3
    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="any")
    assert s.extension_allowed(".jpg")
示例#2
0
def test_extension_not_allowed_if_allowed_if_not_dotted():
    from pyramid_storage import s3
    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")
    assert not s.extension_allowed("jpg", ("gif", ))
示例#3
0
def test_file_not_allowed():
    from pyramid_storage import s3

    fs = mock.Mock()
    fs.filename = "test.jpg"
    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="documents")

    assert not s.file_allowed(fs)
示例#4
0
def test_save_file():
    from pyramid_storage import s3

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    with mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                    _get_mock_s3_connection):
        name = s.save_file(mock.Mock(), "test.jpg")
    assert name == "test.jpg"
示例#5
0
def test_save_if_file_not_allowed():
    from pyramid_storage import s3
    from pyramid_storage.exceptions import FileNotAllowed

    fs = mock.Mock()
    fs.filename = "test.jpg"
    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="documents")

    with pytest.raises(FileNotAllowed):
        s.save(fs)
示例#6
0
def test_delete():

    from pyramid_storage import s3

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    with mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                    _get_mock_s3_connection):

        s.delete("test.jpg")
示例#7
0
def test_folder_listing():
    from pyramid_storage import s3

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    with mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                    _get_mock_s3_connection):

        files_list = s.get_files_list("uploads")

        assert 'image1.png' in files_list
示例#8
0
def test_save_if_randomize():
    from pyramid_storage import s3

    fs = mock.Mock()
    fs.filename = "test.jpg"

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    with mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                    _get_mock_s3_connection):
        name = s.save(fs, randomize=True)
    assert name != "test.jpg"
示例#9
0
def test_save_with_content_type():

    from pyramid_storage import s3

    fs = mock.Mock()
    fs.filename = "test.doc"

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="documents")

    with mock.patch(
            'pyramid_storage.s3.S3FileStorage.get_connection') as mocked:
        name = s.save(fs, headers={"Content-Type": "text/html"})
    call = mocked.return_value.get_bucket.return_value.get_key.return_value.set_contents_from_file.call_args_list
    assert call[0][1]["headers"]["Content-Type"] == "text/html"
示例#10
0
def test_save_in_folder_with_subdir():

    from pyramid_storage import s3

    fs = mock.Mock()
    fs.filename = "test.jpg"

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    with mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                    _get_mock_s3_connection):
        name = s.save(fs, folder="my_folder", partition_sub_dir=True)

    regex = re.compile('my_folder/[a-f-0-9]+/test.jpg')

    assert regex.match(name) is not None
示例#11
0
def test_save_filename():
    from pyramid_storage import s3

    s = s3.S3FileStorage(access_key="AK",
                         secret_key="SK",
                         bucket_name="my_bucket",
                         extensions="images")

    patches = (mock.patch(_mock_open_name(), _mock_open),
               mock.patch('pyramid_storage.s3.S3FileStorage.get_connection',
                          _get_mock_s3_connection))

    for patch in patches:
        patch.start()

    name = s.save_filename("test.jpg")
    assert name == "test.jpg"

    for patch in patches:
        patch.stop()