1
0

test_upload.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. from reflex.components.core.upload import (
  2. StyledUpload,
  3. Upload,
  4. UploadNamespace,
  5. _on_drop_spec, # type: ignore
  6. cancel_upload,
  7. get_upload_url,
  8. )
  9. from reflex.event import EventSpec
  10. from reflex.state import State
  11. from reflex.vars import Var
  12. class TestUploadState(State):
  13. """Test upload state."""
  14. def drop_handler(self, files):
  15. """Handle the drop event.
  16. Args:
  17. files: The files dropped.
  18. """
  19. pass
  20. def not_drop_handler(self, not_files):
  21. """Handle the drop event without defining the files argument.
  22. Args:
  23. not_files: The files dropped.
  24. """
  25. pass
  26. def test_cancel_upload():
  27. spec = cancel_upload("foo_id")
  28. assert isinstance(spec, EventSpec)
  29. def test_get_upload_url():
  30. url = get_upload_url("foo_file")
  31. assert isinstance(url, Var)
  32. def test__on_drop_spec():
  33. assert isinstance(_on_drop_spec(Var.create([])), list)
  34. def test_upload_create():
  35. up_comp_1 = Upload.create()
  36. assert isinstance(up_comp_1, Upload)
  37. assert up_comp_1.is_used
  38. # reset is_used
  39. Upload.is_used = False
  40. up_comp_2 = Upload.create(
  41. id="foo_id",
  42. on_drop=TestUploadState.drop_handler([]), # type: ignore
  43. )
  44. assert isinstance(up_comp_2, Upload)
  45. assert up_comp_2.is_used
  46. # reset is_used
  47. Upload.is_used = False
  48. up_comp_3 = Upload.create(
  49. id="foo_id",
  50. on_drop=TestUploadState.drop_handler,
  51. )
  52. assert isinstance(up_comp_3, Upload)
  53. assert up_comp_3.is_used
  54. # reset is_used
  55. Upload.is_used = False
  56. up_comp_4 = Upload.create(
  57. id="foo_id",
  58. on_drop=TestUploadState.not_drop_handler([]), # type: ignore
  59. )
  60. assert isinstance(up_comp_4, Upload)
  61. assert up_comp_4.is_used
  62. def test_styled_upload_create():
  63. styled_up_comp_1 = StyledUpload.create()
  64. assert isinstance(styled_up_comp_1, StyledUpload)
  65. assert styled_up_comp_1.is_used
  66. # reset is_used
  67. StyledUpload.is_used = False
  68. styled_up_comp_2 = StyledUpload.create(
  69. id="foo_id",
  70. on_drop=TestUploadState.drop_handler([]), # type: ignore
  71. )
  72. assert isinstance(styled_up_comp_2, StyledUpload)
  73. assert styled_up_comp_2.is_used
  74. # reset is_used
  75. StyledUpload.is_used = False
  76. styled_up_comp_3 = StyledUpload.create(
  77. id="foo_id",
  78. on_drop=TestUploadState.drop_handler,
  79. )
  80. assert isinstance(styled_up_comp_3, StyledUpload)
  81. assert styled_up_comp_3.is_used
  82. # reset is_used
  83. StyledUpload.is_used = False
  84. styled_up_comp_4 = StyledUpload.create(
  85. id="foo_id",
  86. on_drop=TestUploadState.not_drop_handler([]), # type: ignore
  87. )
  88. assert isinstance(styled_up_comp_4, StyledUpload)
  89. assert styled_up_comp_4.is_used
  90. def test_upload_namespace():
  91. up_ns = UploadNamespace()
  92. assert isinstance(up_ns, UploadNamespace)
  93. assert isinstance(up_ns(id="foo_id"), StyledUpload)
  94. assert isinstance(up_ns.root(id="foo_id"), Upload)