123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import sys
- from typing import List, Tuple
- import pytest
- from reflex.components.chakra.datadisplay.table import Tbody, Tfoot, Thead
- from reflex.state import BaseState
- PYTHON_GT_V38 = sys.version_info.major >= 3 and sys.version_info.minor > 8
- class TableState(BaseState):
- """Test State class."""
- rows_List_List_str: List[List[str]] = [["random", "row"]]
- rows_List_List: List[List] = [["random", "row"]]
- rows_List_str: List[str] = ["random", "row"]
- rows_Tuple_List_str: Tuple[List[str]] = (["random", "row"],)
- rows_Tuple_List: Tuple[List] = ["random", "row"] # type: ignore
- rows_Tuple_str_str: Tuple[str, str] = (
- "random",
- "row",
- )
- rows_Tuple_Tuple_str_str: Tuple[Tuple[str, str]] = (
- (
- "random",
- "row",
- ),
- )
- rows_Tuple_Tuple: Tuple[Tuple] = (
- (
- "random",
- "row",
- ),
- )
- rows_str: str = "random, row"
- headers_List_str: List[str] = ["header1", "header2"]
- headers_Tuple_str_str: Tuple[str, str] = (
- "header1",
- "header2",
- )
- headers_str: str = "headers1, headers2"
- footers_List_str: List[str] = ["footer1", "footer2"]
- footers_Tuple_str_str: Tuple[str, str] = (
- "footer1",
- "footer2",
- )
- footers_str: str = "footer1, footer2"
- if sys.version_info.major >= 3 and sys.version_info.minor > 8:
- rows_list_list_str: list[list[str]] = [["random", "row"]]
- rows_list_list: list[list] = [["random", "row"]]
- rows_list_str: list[str] = ["random", "row"]
- rows_tuple_list_str: tuple[list[str]] = (["random", "row"],)
- rows_tuple_list: tuple[list] = ["random", "row"] # type: ignore
- rows_tuple_str_str: tuple[str, str] = (
- "random",
- "row",
- )
- rows_tuple_tuple_str_str: tuple[tuple[str, str]] = (
- (
- "random",
- "row",
- ),
- )
- rows_tuple_tuple: tuple[tuple] = (
- (
- "random",
- "row",
- ),
- )
- valid_extras = (
- [
- TableState.rows_list_list_str,
- TableState.rows_list_list,
- TableState.rows_tuple_list_str,
- TableState.rows_tuple_list,
- TableState.rows_tuple_tuple_str_str,
- TableState.rows_tuple_tuple,
- ]
- if PYTHON_GT_V38
- else []
- )
- invalid_extras = (
- [TableState.rows_list_str, TableState.rows_tuple_str_str] if PYTHON_GT_V38 else []
- )
- @pytest.mark.parametrize(
- "rows",
- [
- [["random", "row"]],
- TableState.rows_List_List_str,
- TableState.rows_List_List,
- TableState.rows_Tuple_List_str,
- TableState.rows_Tuple_List,
- TableState.rows_Tuple_Tuple_str_str,
- TableState.rows_Tuple_Tuple,
- *valid_extras,
- ],
- )
- def test_create_table_body_with_valid_rows_prop(rows):
- render_dict = Tbody.create(rows=rows).render()
- assert render_dict["name"] == "Tbody"
- assert len(render_dict["children"]) == 1
- @pytest.mark.parametrize(
- "rows",
- [
- ["random", "row"],
- "random, rows",
- TableState.rows_List_str,
- TableState.rows_Tuple_str_str,
- TableState.rows_str,
- *invalid_extras,
- ],
- )
- def test_create_table_body_with_invalid_rows_prop(rows):
- with pytest.raises(TypeError):
- Tbody.create(rows=rows)
- @pytest.mark.parametrize(
- "headers",
- [
- ["random", "header"],
- TableState.headers_List_str,
- TableState.headers_Tuple_str_str,
- ],
- )
- def test_create_table_head_with_valid_headers_prop(headers):
- render_dict = Thead.create(headers=headers).render()
- assert render_dict["name"] == "Thead"
- assert len(render_dict["children"]) == 1
- assert render_dict["children"][0]["name"] == "Tr"
- @pytest.mark.parametrize(
- "headers",
- [
- "random, header",
- TableState.headers_str,
- ],
- )
- def test_create_table_head_with_invalid_headers_prop(headers):
- with pytest.raises(TypeError):
- Thead.create(headers=headers)
- @pytest.mark.parametrize(
- "footers",
- [
- ["random", "footers"],
- TableState.footers_List_str,
- TableState.footers_Tuple_str_str,
- ],
- )
- def test_create_table_footer_with_valid_footers_prop(footers):
- render_dict = Tfoot.create(footers=footers).render()
- assert render_dict["name"] == "Tfoot"
- assert len(render_dict["children"]) == 1
- assert render_dict["children"][0]["name"] == "Tr"
- @pytest.mark.parametrize(
- "footers",
- [
- "random, footers",
- TableState.footers_str,
- ],
- )
- def test_create_table_footer_with_invalid_footers_prop(footers):
- with pytest.raises(TypeError):
- Tfoot.create(footers=footers)
|