| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | from collections.abc import Generatorfrom pathlib import Pathimport pytestfrom extensions.storage.opendal_storage import OpenDALStoragefrom tests.unit_tests.oss.__mock.base import (    get_example_data,    get_example_filename,    get_opendal_bucket,)class TestOpenDAL:    @pytest.fixture(autouse=True)    def setup_method(self, *args, **kwargs):        """Executed before each test method."""        self.storage = OpenDALStorage(            scheme="fs",            root=get_opendal_bucket(),        )    @pytest.fixture(scope="class", autouse=True)    def teardown_class(self, request):        """Clean up after all tests in the class."""        def cleanup():            folder = Path(get_opendal_bucket())            if folder.exists() and folder.is_dir():                for item in folder.iterdir():                    if item.is_file():                        item.unlink()                    elif item.is_dir():                        item.rmdir()                folder.rmdir()        return cleanup()    def test_save_and_exists(self):        """Test saving data and checking existence."""        filename = get_example_filename()        data = get_example_data()        assert not self.storage.exists(filename)        self.storage.save(filename, data)        assert self.storage.exists(filename)    def test_load_once(self):        """Test loading data once."""        filename = get_example_filename()        data = get_example_data()        self.storage.save(filename, data)        loaded_data = self.storage.load_once(filename)        assert loaded_data == data    def test_load_stream(self):        """Test loading data as a stream."""        filename = get_example_filename()        data = get_example_data()        self.storage.save(filename, data)        generator = self.storage.load_stream(filename)        assert isinstance(generator, Generator)        assert next(generator) == data    def test_download(self):        """Test downloading data to a file."""        filename = get_example_filename()        filepath = str(Path(get_opendal_bucket()) / filename)        data = get_example_data()        self.storage.save(filename, data)        self.storage.download(filename, filepath)    def test_delete(self):        """Test deleting a file."""        filename = get_example_filename()        data = get_example_data()        self.storage.save(filename, data)        assert self.storage.exists(filename)        self.storage.delete(filename)        assert not self.storage.exists(filename)
 |