MCPcopy
hub / github.com/python-visualization/folium / test_realtime

Function test_realtime

tests/plugins/test_realtime.py:12–65  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10
11
12def test_realtime():
13 m = folium.Map(location=[40.73, -73.94], zoom_start=12)
14 source = "https://raw.githubusercontent.com/python-visualization/folium-example-data/main/subway_stations.geojson"
15
16 container = MarkerCluster().add_to(m)
17
18 rt = Realtime(
19 source,
20 get_feature_id=JsCode("(f) => { return f.properties.objectid }"),
21 point_to_layer=JsCode(
22 "(f, latlng) => { return L.circleMarker(latlng, {radius: 8, fillOpacity: 0.2})}"
23 ),
24 container=container,
25 interval=10000,
26 )
27 rt.add_to(m)
28
29 tmpl_for_expected = Template(
30 """
31 {% macro script(this, kwargs) %}
32 var {{ this.get_name() }}_options = {{ this.options|tojavascript }};
33 {% for key, value in this.functions.items() %}
34 {{ this.get_name() }}_options["{{key}}"] = {{ value }};
35 {% endfor %}
36
37 {% if this.container -%}
38 {{ this.get_name() }}_options["container"]
39 = {{ this.container.get_name() }};
40 {% endif -%}
41
42 var {{ this.get_name() }} = new L.realtime(
43 {% if this.src is string or this.src is mapping -%}
44 {{ this.src|tojson }},
45 {% else -%}
46 {{ this.src.js_code }},
47 {% endif -%}
48 {{ this.get_name() }}_options
49 );
50 {{ this._parent.get_name() }}.addLayer(
51 {{ this.get_name() }}._container);
52 {% endmacro %}
53 """
54 )
55 expected = normalize(tmpl_for_expected.render(this=rt))
56
57 out = normalize(m._parent.render())
58
59 # We verify that imports
60 assert (
61 '<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-realtime/2.2.0/leaflet-realtime.js"></script>' # noqa
62 in out
63 ) # noqa
64
65 assert expected in out

Callers

nothing calls this directly

Calls 7

MarkerClusterClass · 0.90
RealtimeClass · 0.90
JsCodeClass · 0.90
TemplateClass · 0.90
normalizeFunction · 0.90
add_toMethod · 0.80
renderMethod · 0.45

Tested by

no test coverage detected