1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import os
- from collections.abc import Generator
- from pathlib import Path
- import pytest
- from configs.middleware.storage.opendal_storage_config import OpenDALScheme
- from extensions.storage.opendal_storage import OpenDALStorage
- from tests.unit_tests.oss.__mock.base import (
- get_example_data,
- get_example_filename,
- get_example_filepath,
- get_example_folder,
- )
- class TestOpenDAL:
- @pytest.fixture(autouse=True)
- def setup_method(self, *args, **kwargs):
- """Executed before each test method."""
- self.storage = OpenDALStorage(
- scheme=OpenDALScheme.FS,
- root=get_example_folder(),
- )
- def teardown_method(self, method):
- """Clean up after each test method."""
- try:
- if self.storage.exists(get_example_filename()):
- self.storage.delete(get_example_filename())
- filepath = Path(get_example_filepath())
- if filepath.exists():
- filepath.unlink()
- except:
- pass
- 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 = get_example_filepath()
- data = get_example_data()
- self.storage.save(filename, data)
- self.storage.download(filename, filepath)
- downloaded_path = Path(filepath)
- assert downloaded_path.exists()
- downloaded_data = downloaded_path.read_bytes()
- assert downloaded_data == data
- 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)
|