test_volcengine_tos.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from collections.abc import Generator
  2. from flask import Flask
  3. from tos import TosClientV2
  4. from tos.clientv2 import GetObjectOutput, HeadObjectOutput, PutObjectOutput
  5. from extensions.storage.volcengine_tos_storage import VolcengineTosStorage
  6. from tests.unit_tests.oss.__mock.volcengine_tos import (
  7. get_example_bucket,
  8. get_example_data,
  9. get_example_filename,
  10. get_example_filepath,
  11. setup_volcengine_tos_mock,
  12. )
  13. class VolcengineTosTest:
  14. _instance = None
  15. def __new__(cls):
  16. if cls._instance == None:
  17. cls._instance = object.__new__(cls)
  18. return cls._instance
  19. else:
  20. return cls._instance
  21. def __init__(self):
  22. self.storage = VolcengineTosStorage(app=Flask(__name__))
  23. self.storage.bucket_name = get_example_bucket()
  24. self.storage.client = TosClientV2(
  25. ak="dify",
  26. sk="dify",
  27. endpoint="https://xxx.volces.com",
  28. region="cn-beijing",
  29. )
  30. def test_save(setup_volcengine_tos_mock):
  31. volc_tos = VolcengineTosTest()
  32. volc_tos.storage.save(get_example_filename(), get_example_data())
  33. def test_load_once(setup_volcengine_tos_mock):
  34. volc_tos = VolcengineTosTest()
  35. assert volc_tos.storage.load_once(get_example_filename()) == get_example_data()
  36. def test_load_stream(setup_volcengine_tos_mock):
  37. volc_tos = VolcengineTosTest()
  38. generator = volc_tos.storage.load_stream(get_example_filename())
  39. assert isinstance(generator, Generator)
  40. assert next(generator) == get_example_data()
  41. def test_download(setup_volcengine_tos_mock):
  42. volc_tos = VolcengineTosTest()
  43. volc_tos.storage.download(get_example_filename(), get_example_filepath())
  44. def test_exists(setup_volcengine_tos_mock):
  45. volc_tos = VolcengineTosTest()
  46. assert volc_tos.storage.exists(get_example_filename())
  47. def test_delete(setup_volcengine_tos_mock):
  48. volc_tos = VolcengineTosTest()
  49. volc_tos.storage.delete(get_example_filename())