reflex/tests/units/states/upload.py
Thomas Brandého 61cb72596e
enable PTH rule (#4476)
* enable PTH rule

* fix import in test_call_script

* fix units tests

* reorder ruff rules

* Update reflex/utils/build.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* format pyproject.toml

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-12-13 14:06:26 -08:00

175 lines
4.0 KiB
Python

"""Test states for upload-related tests."""
from pathlib import Path
from typing import ClassVar, List
import reflex as rx
from reflex.state import BaseState, State
class UploadState(BaseState):
"""The base state for uploading a file."""
async def handle_upload1(self, files: List[rx.UploadFile]):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
pass
class BaseState(BaseState):
"""The test base state."""
pass
class SubUploadState(BaseState):
"""The test substate."""
img: str
async def handle_upload(self, files: List[rx.UploadFile]):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
pass
class FileUploadState(State):
"""The base state for uploading a file."""
img_list: List[str]
_tmp_path: ClassVar[Path]
async def handle_upload2(self, files):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
pass
async def multi_handle_upload(self, files: List[rx.UploadFile]):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
for file in files:
upload_data = await file.read()
assert file.filename is not None
outfile = self._tmp_path / file.filename
# Save the file.
outfile.write_bytes(upload_data)
# Update the img var.
self.img_list.append(file.filename)
@rx.event(background=True)
async def bg_upload(self, files: List[rx.UploadFile]):
"""Background task cannot be upload handler.
Args:
files: The uploaded files.
"""
pass
class FileStateBase1(State):
"""The base state for a child FileUploadState."""
pass
class ChildFileUploadState(FileStateBase1):
"""The child state for uploading a file."""
img_list: List[str]
_tmp_path: ClassVar[Path]
async def handle_upload2(self, files):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
pass
async def multi_handle_upload(self, files: List[rx.UploadFile]):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
for file in files:
upload_data = await file.read()
assert file.filename is not None
outfile = self._tmp_path / file.filename
# Save the file.
outfile.write_bytes(upload_data)
# Update the img var.
self.img_list.append(file.filename)
@rx.event(background=True)
async def bg_upload(self, files: List[rx.UploadFile]):
"""Background task cannot be upload handler.
Args:
files: The uploaded files.
"""
pass
class FileStateBase2(FileStateBase1):
"""The parent state for a grandchild FileUploadState."""
pass
class GrandChildFileUploadState(FileStateBase2):
"""The child state for uploading a file."""
img_list: List[str]
_tmp_path: ClassVar[Path]
async def handle_upload2(self, files):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
pass
async def multi_handle_upload(self, files: List[rx.UploadFile]):
"""Handle the upload of a file.
Args:
files: The uploaded files.
"""
for file in files:
upload_data = await file.read()
assert file.filename is not None
outfile = self._tmp_path / file.filename
# Save the file.
outfile.write_bytes(upload_data)
# Update the img var.
self.img_list.append(file.filename)
@rx.event(background=True)
async def bg_upload(self, files: List[rx.UploadFile]):
"""Background task cannot be upload handler.
Args:
files: The uploaded files.
"""
pass