Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
python-visualization
GitHub Repository: python-visualization/folium
Path: blob/main/tests/test_template.py
1593 views
1
from branca.element import Element
2
3
from folium import JsCode
4
from folium.template import Environment, Template, _to_escaped_json, tojavascript
5
6
7
def test_tojavascript_with_jscode():
8
js_code = JsCode("console.log('Hello, World!')")
9
assert tojavascript(js_code) == "console.log('Hello, World!')"
10
11
12
def test_tojavascript_with_element():
13
element = Element()
14
assert tojavascript(element) == element.get_name()
15
16
17
def test_tojavascript_with_dict():
18
dict_obj = {"key": "value"}
19
assert tojavascript(dict_obj) == '{\n "key": "value",\n}'
20
21
22
def test_tojavascript_with_dict_with_mixed_key_types():
23
dict_obj = {"key": "value", 1: "another value", 3.14: "pi"}
24
expected = '{\n "key": "value",\n 1: "another value",\n 3.14: "pi",\n}'
25
assert tojavascript(dict_obj) == expected
26
27
28
def test_tojavascript_with_list():
29
list_obj = ["value1", "value2"]
30
assert tojavascript(list_obj) == '[\n"value1",\n"value2",\n]'
31
32
33
def test_tojavascript_with_string():
34
assert tojavascript("Hello, World!") == _to_escaped_json("Hello, World!")
35
36
37
def test_tojavascript_with_combined_elements():
38
js_code = JsCode("console.log('Hello, World!')")
39
element = Element()
40
combined_dict = {
41
"key": "value",
42
"list": ["value1", "value2", element, js_code],
43
"nested_dict": {"nested_key": "nested_value"},
44
}
45
result = tojavascript(combined_dict)
46
expected_lines = [
47
"{",
48
' "key": "value",',
49
' "list": [',
50
'"value1",',
51
'"value2",',
52
element.get_name() + ",",
53
"console.log('Hello, World!'),",
54
"],",
55
' "nestedDict": {',
56
' "nestedKey": "nested_value",',
57
"},",
58
"}",
59
]
60
for result_line, expected_line in zip(result.splitlines(), expected_lines):
61
assert result_line == expected_line
62
63
64
def test_to_escaped_json():
65
assert _to_escaped_json("hi<>&'") == '"hi\\u003c\\u003e\\u0026\\u0027"'
66
67
68
def test_environment_filter():
69
env = Environment()
70
assert "tojavascript" in env.filters
71
72
73
def test_template_environment_class():
74
assert Template.environment_class == Environment
75
76