-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
test_boat_marker.py
80 lines (63 loc) · 2 KB
/
test_boat_marker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# -*- coding: utf-8 -*-
"""
Test BoatMarker
---------------
"""
import folium
from folium import plugins
from folium.utilities import normalize
from jinja2 import Template
def test_boat_marker():
m = folium.Map([30., 0.], zoom_start=3)
bm1 = plugins.BoatMarker(
(34, -43),
heading=45,
wind_heading=150,
wind_speed=45,
color='#8f8')
bm2 = plugins.BoatMarker(
(46, -30),
heading=-20,
wind_heading=46,
wind_speed=25,
color='#88f')
m.add_child(bm1)
m.add_child(bm2)
m._repr_html_()
out = normalize(m._parent.render())
# We verify that the script import is present.
script = '<script src="https://unpkg.com/leaflet.boatmarker/leaflet.boatmarker.min.js"></script>' # noqa
assert script in out
# We verify that the script part is correct.
tmpl = Template(u"""
var {{ this.get_name() }} = L.boatMarker(
{{ this.location|tojson }},
{{ this.options|tojson }}
).addTo({{ this._parent.get_name() }});
{{ this.get_name() }}.setHeadingWind(
{{ this.heading }},
{{ this.wind_speed }},
{{ this.wind_heading }}
);
""")
assert normalize(tmpl.render(this=bm1)) in out
assert normalize(tmpl.render(this=bm2)) in out
bounds = m.get_bounds()
assert bounds == [[34, -43], [46, -30]], bounds
def test_boat_marker_with_no_wind_speed_or_heading():
m = folium.Map([30., 0.], zoom_start=3)
bm1 = plugins.BoatMarker(
(34, -43),
heading=45,
color='#8f8')
m.add_child(bm1)
out = normalize(m._parent.render())
# We verify that the script part is correct.
tmpl = Template("""
var {{ this.get_name() }} = L.boatMarker(
{{ this.location|tojson }},
{{ this.options|tojson }}
).addTo({{ this._parent.get_name() }});
{{ this.get_name() }}.setHeading({{ this.heading }});
""")
assert normalize(tmpl.render(this=bm1)) in out