Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
python-visualization
GitHub Repository: python-visualization/folium
Path: blob/main/tests/plugins/test_beautify_icon.py
1601 views
1
"""
2
Test BeautifyIcon
3
---------------
4
5
"""
6
7
import folium
8
from folium import plugins
9
from folium.template import Template
10
from folium.utilities import normalize
11
12
13
def test_beautify_icon():
14
m = folium.Map([30.0, 0.0], zoom_start=3)
15
# BeautifyIcons
16
ic1 = plugins.BeautifyIcon(
17
icon="plane", border_color="#b3334f", text_color="#b3334f"
18
)
19
ic2 = plugins.BeautifyIcon(
20
border_color="#00ABDC",
21
text_color="#00ABDC",
22
number=10,
23
inner_icon_style="margin-top:0;",
24
)
25
26
# Markers, add icons as keyword argument
27
bm1 = folium.Marker(location=[46, -122], popup="Portland, OR", icon=ic1).add_to(m)
28
29
bm2 = folium.Marker(location=[50, -121], icon=ic2).add_to(m)
30
31
m.add_child(bm1)
32
m.add_child(bm2)
33
m._repr_html_()
34
35
out = normalize(m._parent.render())
36
37
# We verify that the script import is present.
38
script = '<script src="https://cdn.jsdelivr.net/gh/marslan390/BeautifyMarker/leaflet-beautify-marker-icon.min.js"></script>' # noqa
39
assert script in out
40
41
# We verify that the css import is present.
42
css = '<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/marslan390/BeautifyMarker/leaflet-beautify-marker-icon.min.css"/>' # noqa
43
assert css in out
44
45
# We verify that the Beautiful Icons are rendered correctly.
46
tmpl = Template(
47
"""
48
var {{this.get_name()}} = new L.BeautifyIcon.icon({{ this.options|tojavascript }})
49
{{this._parent.get_name()}}.setIcon({{this.get_name()}});
50
"""
51
) # noqa
52
53
assert normalize(tmpl.render(this=ic1)) in out
54
assert normalize(tmpl.render(this=ic2)) in out
55
56