014-attachments_manager.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import sys
  2. import pathlib
  3. test_file = pathlib.Path(__file__)
  4. test_dir = test_file.parent
  5. project = test_dir.parent
  6. sys.path.append(str(project))
  7. import server_source as source
  8. from test import test
  9. import asyncio
  10. import tortoise
  11. async def main():
  12. global test_dir
  13. modules = {
  14. source.model.Meta.app: [ "server_source" ]
  15. }
  16. await tortoise.Tortoise.init(
  17. db_url = "sqlite://:memory:",
  18. modules = modules
  19. )
  20. await tortoise.Tortoise.generate_schemas()
  21. directory = source.attachments_directory(test_dir)
  22. manager = source.attachments_manager(directory)
  23. first_id = await manager.upload(
  24. "IyBVd1UKICogRmlyc3QgcG9pbnQKICogU2Vjb25kIHBvaW50Cg==",
  25. "txt",
  26. "Sample",
  27. "That is example attachment."
  28. )
  29. first = await manager.get_by_id(first_id)
  30. print("Result after creation:")
  31. print(repr(first))
  32. print()
  33. await manager.edit(first_id, "new_name", "That is new description.")
  34. first = await manager.get_by_id(first_id)
  35. print("Result after edit:")
  36. print(repr(first))
  37. print()
  38. second_id = await manager.upload(
  39. "IyBVd1UKICogRmlyc3QgcG9pbnQKICogU2Vjb25kIHBvaW50Cg==",
  40. "md",
  41. "second_item",
  42. "That is second item."
  43. )
  44. alls = await manager.get_all()
  45. print("Created second. All items:")
  46. print(repr(alls))
  47. print()
  48. await tortoise.Tortoise.close_connections()
  49. asyncio.run(main())