|
from collections.abc import Generator |
|
|
|
import pytest |
|
|
|
from extensions.storage.base_storage import BaseStorage |
|
|
|
|
|
def get_example_folder() -> str: |
|
return "/dify" |
|
|
|
|
|
def get_example_bucket() -> str: |
|
return "dify" |
|
|
|
|
|
def get_example_filename() -> str: |
|
return "test.txt" |
|
|
|
|
|
def get_example_data() -> bytes: |
|
return b"test" |
|
|
|
|
|
def get_example_filepath() -> str: |
|
return "/test" |
|
|
|
|
|
class BaseStorageTest: |
|
@pytest.fixture(autouse=True) |
|
def setup_method(self): |
|
"""Should be implemented in child classes to setup specific storage.""" |
|
self.storage = BaseStorage() |
|
|
|
def test_save(self): |
|
"""Test saving data.""" |
|
self.storage.save(get_example_filename(), get_example_data()) |
|
|
|
def test_load_once(self): |
|
"""Test loading data once.""" |
|
assert self.storage.load_once(get_example_filename()) == get_example_data() |
|
|
|
def test_load_stream(self): |
|
"""Test loading data as a stream.""" |
|
generator = self.storage.load_stream(get_example_filename()) |
|
assert isinstance(generator, Generator) |
|
assert next(generator) == get_example_data() |
|
|
|
def test_download(self): |
|
"""Test downloading data.""" |
|
self.storage.download(get_example_filename(), get_example_filepath()) |
|
|
|
def test_exists(self): |
|
"""Test checking if a file exists.""" |
|
assert self.storage.exists(get_example_filename()) |
|
|
|
def test_delete(self): |
|
"""Test deleting a file.""" |
|
self.storage.delete(get_example_filename()) |
|
|