Added Application HolidayViewer
This commit is contained in:
@@ -1,15 +1,9 @@
|
||||
from collections import OrderedDict
|
||||
|
||||
import pandas as pd
|
||||
import pytest
|
||||
from fastcore.basics import NotStr
|
||||
from fastcore.xml import to_xml
|
||||
from fasthtml.components import *
|
||||
|
||||
from components.datagrid.DataGrid import DataGrid
|
||||
from helpers import matches, search_elements_by_name, search_elements_by_path, extract_table_values, get_from_html, \
|
||||
extract_popup_content, \
|
||||
Empty, get_path_attributes, find_first_match, StartsWith, search_first_with_attribute, Contains
|
||||
from components.debugger.components.JsonViewer import JsonViewer
|
||||
from helpers import *
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -329,3 +323,118 @@ def test_i_can_search_first_with_attribute(tag, attr, expected, sample_structure
|
||||
assert result.tag == expected[0]
|
||||
assert attr in result.attrs
|
||||
assert result.attrs[attr] == expected[1]
|
||||
|
||||
|
||||
# Add tests for extract_jsonviewer_node
|
||||
def test_extract_jsonviewer_node():
|
||||
# Create a valid JsonViewer node element
|
||||
element = Div(
|
||||
span_icon("expanded"),
|
||||
Span("key : "),
|
||||
Span("value")
|
||||
)
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is not None
|
||||
assert result.is_expanded is True
|
||||
assert result.key == "key"
|
||||
assert result.value == element.children[2]
|
||||
assert result.debug_key == element.children[1]
|
||||
assert result.debug_folding == element.children[0]
|
||||
|
||||
|
||||
def test_extract_jsonviewer_node_collapsed():
|
||||
# Create a collapsed JsonViewer node element
|
||||
element = Div(
|
||||
span_icon("collapsed"),
|
||||
Span("key : "),
|
||||
Span("value")
|
||||
)
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is not None
|
||||
assert result.is_expanded is False
|
||||
assert result.key == "key"
|
||||
assert result.value == element.children[2]
|
||||
|
||||
|
||||
def test_extract_jsonviewer_node_no_expansion_state():
|
||||
# Create a JsonViewer node with no expansion state
|
||||
element = Div(
|
||||
Span(),
|
||||
Span("key : "),
|
||||
Span("value")
|
||||
)
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is not None
|
||||
assert result.is_expanded is None
|
||||
assert result.key == "key"
|
||||
assert result.value == element.children[2]
|
||||
|
||||
|
||||
def test_extract_jsonviewer_node_root_node():
|
||||
# Create a root JsonViewer node (no key)
|
||||
element = Div(
|
||||
span_icon("expanded"),
|
||||
None,
|
||||
Span("value")
|
||||
)
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is not None
|
||||
assert result.is_expanded is True
|
||||
assert result.key is None
|
||||
assert result.value == element.children[2]
|
||||
|
||||
|
||||
def test_extract_jsonviewer_node_invalid_structure():
|
||||
# Test with invalid node structure (not enough children)
|
||||
element = Div(
|
||||
span_icon("expanded"),
|
||||
Span("key : ")
|
||||
)
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is None
|
||||
|
||||
# Test with element that has no children attribute
|
||||
element = "not an element with children"
|
||||
|
||||
result = extract_jsonviewer_node(element)
|
||||
|
||||
assert result is None
|
||||
|
||||
|
||||
def test_json_viewer_find():
|
||||
value = {"a": [1, 2, 3], "b": {"x": "y", "z": True}}
|
||||
jsonviewer = JsonViewer(None, None, None, None, value)
|
||||
elements = jsonviewer.__ft__()
|
||||
root_div = search_elements_by_name(elements, "div", attrs={"id": f"{jsonviewer.get_id()}-root"})[0]
|
||||
first_level_div = root_div.children[0]
|
||||
|
||||
as_node = extract_jsonviewer_node(first_level_div)
|
||||
child_b = as_node.find("b")
|
||||
|
||||
assert isinstance(child_b, JsonViewerNode)
|
||||
assert child_b.key == "b"
|
||||
|
||||
|
||||
def test_json_viewer_find_with_path():
|
||||
value = {"a": {"x": None, "y": ["first", "second"], "z": True}}
|
||||
jsonviewer = JsonViewer(None, None, None, None, value)
|
||||
jsonviewer.set_folding_mode("expand")
|
||||
elements = jsonviewer.__ft__()
|
||||
root_div = search_elements_by_name(elements, "div", attrs={"id": f"{jsonviewer.get_id()}-root"})[0]
|
||||
first_level_div = root_div.children[0]
|
||||
|
||||
as_node = extract_jsonviewer_node(first_level_div)
|
||||
child = as_node.find("a.y.0")
|
||||
|
||||
assert isinstance(child, JsonViewerNode)
|
||||
assert child.key == "0"
|
||||
|
||||
Reference in New Issue
Block a user