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")
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", ))
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)
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"
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)
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")
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
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"
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"
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
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()