|
@@ -1,205 +0,0 @@
|
|
|
-import pytest
|
|
|
-
|
|
|
-import reflex as rx
|
|
|
-
|
|
|
-
|
|
|
-@pytest.fixture
|
|
|
-def upload_root_component():
|
|
|
- """A test upload component function.
|
|
|
-
|
|
|
- Returns:
|
|
|
- A test upload component function.
|
|
|
- """
|
|
|
-
|
|
|
- def upload_root_component():
|
|
|
- return rx.upload.root(
|
|
|
- rx.button("select file"),
|
|
|
- rx.text("Drag and drop files here or click to select files"),
|
|
|
- border="1px dotted black",
|
|
|
- )
|
|
|
-
|
|
|
- return upload_root_component()
|
|
|
-
|
|
|
-
|
|
|
-@pytest.fixture
|
|
|
-def upload_component():
|
|
|
- """A test upload component function.
|
|
|
-
|
|
|
- Returns:
|
|
|
- A test upload component function.
|
|
|
- """
|
|
|
-
|
|
|
- def upload_component():
|
|
|
- return rx.upload(
|
|
|
- rx.button("select file"),
|
|
|
- rx.text("Drag and drop files here or click to select files"),
|
|
|
- border="1px dotted black",
|
|
|
- )
|
|
|
-
|
|
|
- return upload_component()
|
|
|
-
|
|
|
-
|
|
|
-@pytest.fixture
|
|
|
-def upload_component_id_special():
|
|
|
- def upload_component():
|
|
|
- return rx.upload(
|
|
|
- rx.button("select file"),
|
|
|
- rx.text("Drag and drop files here or click to select files"),
|
|
|
- border="1px dotted black",
|
|
|
- id="#spec!`al-_98ID",
|
|
|
- )
|
|
|
-
|
|
|
- return upload_component()
|
|
|
-
|
|
|
-
|
|
|
-@pytest.fixture
|
|
|
-def upload_component_with_props():
|
|
|
- """A test upload component with props function.
|
|
|
-
|
|
|
- Returns:
|
|
|
- A test upload component with props function.
|
|
|
- """
|
|
|
-
|
|
|
- def upload_component_with_props():
|
|
|
- return rx.upload(
|
|
|
- rx.button("select file"),
|
|
|
- rx.text("Drag and drop files here or click to select files"),
|
|
|
- border="1px dotted black",
|
|
|
- no_drag=True,
|
|
|
- max_files=2,
|
|
|
- )
|
|
|
-
|
|
|
- return upload_component_with_props()
|
|
|
-
|
|
|
-
|
|
|
-def test_upload_root_component_render(upload_root_component):
|
|
|
- """Test that the render function is set correctly.
|
|
|
-
|
|
|
- Args:
|
|
|
- upload_root_component: component fixture
|
|
|
- """
|
|
|
- upload = upload_root_component.render()
|
|
|
-
|
|
|
- # upload
|
|
|
- assert upload["name"] == "ReactDropzone"
|
|
|
- assert upload["props"] == [
|
|
|
- 'id={"default"}',
|
|
|
- "multiple={true}",
|
|
|
- "onDrop={e => setFilesById(filesById => {\n"
|
|
|
- " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
- ' updatedFilesById["default"] = e;\n'
|
|
|
- " return updatedFilesById;\n"
|
|
|
- " })\n"
|
|
|
- " }",
|
|
|
- "ref={ref_default}",
|
|
|
- ]
|
|
|
- assert upload["args"] == ("getRootProps", "getInputProps")
|
|
|
-
|
|
|
- # box inside of upload
|
|
|
- [box] = upload["children"]
|
|
|
- assert box["name"] == "RadixThemesBox"
|
|
|
- assert box["props"] == [
|
|
|
- 'className={"rx-Upload"}',
|
|
|
- 'css={({ ["border"] : "1px dotted black" })}',
|
|
|
- "{...getRootProps()}",
|
|
|
- ]
|
|
|
-
|
|
|
- # input, button and text inside of box
|
|
|
- [input, button, text] = box["children"]
|
|
|
- assert input["name"] == "input"
|
|
|
- assert input["props"] == ['type={"file"}', "{...getInputProps()}"]
|
|
|
-
|
|
|
- assert button["name"] == "RadixThemesButton"
|
|
|
- assert button["children"][0]["contents"] == '{"select file"}'
|
|
|
-
|
|
|
- assert text["name"] == "RadixThemesText"
|
|
|
- assert (
|
|
|
- text["children"][0]["contents"]
|
|
|
- == '{"Drag and drop files here or click to select files"}'
|
|
|
- )
|
|
|
-
|
|
|
-
|
|
|
-def test_upload_component_render(upload_component):
|
|
|
- """Test that the render function is set correctly.
|
|
|
-
|
|
|
- Args:
|
|
|
- upload_component: component fixture
|
|
|
- """
|
|
|
- upload = upload_component.render()
|
|
|
-
|
|
|
- # upload
|
|
|
- assert upload["name"] == "ReactDropzone"
|
|
|
- assert upload["props"] == [
|
|
|
- 'id={"default"}',
|
|
|
- "multiple={true}",
|
|
|
- "onDrop={e => setFilesById(filesById => {\n"
|
|
|
- " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
- ' updatedFilesById["default"] = e;\n'
|
|
|
- " return updatedFilesById;\n"
|
|
|
- " })\n"
|
|
|
- " }",
|
|
|
- "ref={ref_default}",
|
|
|
- ]
|
|
|
- assert upload["args"] == ("getRootProps", "getInputProps")
|
|
|
-
|
|
|
- # box inside of upload
|
|
|
- [box] = upload["children"]
|
|
|
- assert box["name"] == "RadixThemesBox"
|
|
|
- assert box["props"] == [
|
|
|
- 'className={"rx-Upload"}',
|
|
|
- 'css={({ ["border"] : "1px dotted black", ["padding"] : "5em", ["textAlign"] : "center" })}',
|
|
|
- "{...getRootProps()}",
|
|
|
- ]
|
|
|
-
|
|
|
- # input, button and text inside of box
|
|
|
- [input, button, text] = box["children"]
|
|
|
- assert input["name"] == "input"
|
|
|
- assert input["props"] == ['type={"file"}', "{...getInputProps()}"]
|
|
|
-
|
|
|
- assert button["name"] == "RadixThemesButton"
|
|
|
- assert button["children"][0]["contents"] == '{"select file"}'
|
|
|
-
|
|
|
- assert text["name"] == "RadixThemesText"
|
|
|
- assert (
|
|
|
- text["children"][0]["contents"]
|
|
|
- == '{"Drag and drop files here or click to select files"}'
|
|
|
- )
|
|
|
-
|
|
|
-
|
|
|
-def test_upload_component_with_props_render(upload_component_with_props):
|
|
|
- """Test that the render function is set correctly.
|
|
|
-
|
|
|
- Args:
|
|
|
- upload_component_with_props: component fixture
|
|
|
- """
|
|
|
- upload = upload_component_with_props.render()
|
|
|
-
|
|
|
- assert upload["props"] == [
|
|
|
- 'id={"default"}',
|
|
|
- "maxFiles={2}",
|
|
|
- "multiple={true}",
|
|
|
- "noDrag={true}",
|
|
|
- "onDrop={e => setFilesById(filesById => {\n"
|
|
|
- " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
- ' updatedFilesById["default"] = e;\n'
|
|
|
- " return updatedFilesById;\n"
|
|
|
- " })\n"
|
|
|
- " }",
|
|
|
- "ref={ref_default}",
|
|
|
- ]
|
|
|
-
|
|
|
-
|
|
|
-def test_upload_component_id_with_special_chars(upload_component_id_special):
|
|
|
- upload = upload_component_id_special.render()
|
|
|
-
|
|
|
- assert upload["props"] == [
|
|
|
- r'id={"#spec!`al-_98ID"}',
|
|
|
- "multiple={true}",
|
|
|
- "onDrop={e => setFilesById(filesById => {\n"
|
|
|
- " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
- ' updatedFilesById["#spec!`al-_98ID"] = e;\n'
|
|
|
- " return updatedFilesById;\n"
|
|
|
- " })\n"
|
|
|
- " }",
|
|
|
- "ref={ref__spec_al__98ID}",
|
|
|
- ]
|