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