First version of DefaultDataFilter

This commit is contained in:
2025-07-08 23:29:47 +02:00
parent e8fc972f98
commit 8135e3d8af
6 changed files with 129 additions and 19 deletions

View File

@@ -5,10 +5,13 @@
# assert column_to_number("A") == 1
# assert column_to_number("AA") == 27
# assert column_to_number("ZZZ") == 475254
import ast
import pytest
from fasthtml.components import Div
from core.utils import make_html_id, update_elements, snake_case_to_capitalized_words, merge_classes
from core.utils import make_html_id, update_elements, snake_case_to_capitalized_words, merge_classes, \
UnreferencedNamesVisitor
@pytest.mark.parametrize("string, expected", [
@@ -110,7 +113,7 @@ def test_i_can_merge_cls():
kwargs = {}
assert merge_classes("class1", kwargs) == "class1"
assert kwargs == {}
kwargs = {"foo": "bar"}
assert merge_classes("class1", kwargs) == "class1"
assert kwargs == {"foo": "bar"}
@@ -127,4 +130,21 @@ def test_i_can_merge_cls():
assert merge_classes("class1", ("class2", "class3")) == "class1 class2 class3"
# values are unique
assert merge_classes("class2", "class1", ("class1", ), {"cls": "class1"}) == "class2 class1"
assert merge_classes("class2", "class1", ("class1",), {"cls": "class1"}) == "class2 class1"
@pytest.mark.parametrize("source, expected", [
("a,b", {"a", "b"}),
("isinstance(a, int)", {"a", "int"}),
("date.today()", set()),
("test()", set()),
("sheerka.test()", set()),
("for i in range(10): pass", set()),
("func(x=a, y=b)", {"a", "b", "x", "y"}),
])
def test_i_can_get_unreferenced_variables_from_simple_expressions(source, expected):
ast_ = ast.parse(source)
visitor = UnreferencedNamesVisitor()
visitor.visit(ast_)
assert visitor.names == expected